Nopea päässälaskutapa 3-numeroisten lukujen kertomiselle

Seuraa 
Viestejä383
Liittynyt6.11.2010

Moro, kehitin tavan kertoa kaksi kolminumeroista lukua nopeasti keskenään. Jahka aikaani saan tuhlattua, niin kehitän tekniikkaa siten että sitä voi käyttää kaikenlaisten lukujen kertomiseen.

1. Otetaan kaksi lukua: 123 ja 456
2. Asetetaan ne allekkain
[code:1ft6y64a]
123
456
[/code:1ft6y64a]
3. Kerro luvut 1 ja 4 ja kerro 10:llä, saat 40
4. Kerro 1*5, kerro 2*4, ja summaa kaikki kolme ja kerro kymmenellä. Saat (40+5+8)*10=530.
5. Kerro 1*6, 2*5, 3*4, summaa kaikki neljä ja kerro kymmenellä. (530+6+10+12)*10=5580
6. Kerro 2*6, 3*5, summaa kaikki kolme ja kerro kymmenellä (5580+12+15)*10=56070
7. Kerro 3*6 ja summaa toisiinsa. 56070+18 = 56088

http://img692.imageshack.us/img692/124/laskeminen.png

Logiikka siis on, että jokainen yläpuolella on kerrottu jokaiseen alapuolella, eli yhteensä joutuu tekemään 9 kertolaskua. Sitten liu'utaan vasemmalta oikealle, välillä kertoen kymmenellä ja välillä summaten. Vähän harjoiteltuaan menetelmä onnistuu luonnostaan ja ainoat haasteet ovat
- kertotaulut 2-10
- summaaminen
- 6 numeron rykelmän "valokuvamuistaminen" menetelmän käytön ajan
- edellisen luvun muistaminen kertoessa seuraavia numeroita keskenään. Vinkki: älä muista "kaksisataa kuusitoista" vaan "kaksi yksi kuusi"

Toinen vinkki: harjoittele pitäen edessäsi 6 numeron rykelmää.

Kerran vielä työjakso:

kerro ekat nrot (1,4)
kerro 10
summaa kahteen nro-tuloon (1,5 ja 2,4)
kerro 10
summaa kolmeen nro-tuloon (1,6 ja 2,5 ja 3,4)
kerro 10
summaa kahteen nro-tuloon (2,6 ja 3,5)
kerro 10
summaa viimeiseen nro-tuloon (3,6)

Kommentit (10)

Vierailija

Eikös tuo ole tismalleen sama kuin kynällä ja paperilla kertominen paitsi ettei kerrota kymmenellä vaan summien sijainti asettuu automaattisesti oikean dekadin kohdalle.

Neutroni
Seuraa 
Viestejä26870
Liittynyt16.3.2005
xork
Moro, kehitin tavan kertoa kaksi kolminumeroista lukua nopeasti keskenään. Jahka aikaani saan tuhlattua, niin kehitän tekniikkaa siten että sitä voi käyttää kaikenlaisten lukujen kertomiseen.

1. Otetaan kaksi lukua: 123 ja 456
2. Asetetaan ne allekkain
[code:2wrle0ed]
123
456
[/code:2wrle0ed]
3. Kerro luvut 1 ja 4 ja kerro 10:llä, saat 40
4. Kerro 1*5, kerro 2*4, ja summaa kaikki kolme ja kerro kymmenellä. Saat (40+5+8)*10=530.
5. Kerro 1*6, 2*5, 3*4, summaa kaikki neljä ja kerro kymmenellä. (530+6+10+12)*10=5580
6. Kerro 2*6, 3*5, summaa kaikki kolme ja kerro kymmenellä (5580+12+15)*10=56070
7. Kerro 3*6 ja summaa toisiinsa. 56070+18 = 56088




Tuontapaista algoritmia hyödynnetään esimerkiksi 8 bittisillä mikrokontrollereilla, kun halutaan kertoa 16 tai 32 bittisiä lukuja. Työmuistista tuollaisen laskeminen on kiinni. Minulla muisti riittää kaksinumeroisten lukujen kertomiseen, jos ympäristö on täydellisen hiljainen ja paineeton (eli kukaan ei odota vieressä tulosta), mutta kolminumeroisilla pukkaa "out of memory error".

xork
Seuraa 
Viestejä383
Liittynyt6.11.2010
korant
Eikös tuo ole tismalleen sama kuin kynällä ja paperilla kertominen paitsi ettei kerrota kymmenellä vaan summien sijainti asettuu automaattisesti oikean dekadin kohdalle.

Kynällä ja paperilla lasketaan ykkösistä kymmeniin ja sitten satoihin päin, kun tämä menetelmä tuo tuloksen isoista pieniin numeroihin. Saattaa olla vähän epäkätevä, koska joutuu miettimään useita lukuja saman aikaisesti. Pahimmillaan pitää muistaa alkulukujen lisäksi kolme lukua yhdellä hetkellä.

xork
Seuraa 
Viestejä383
Liittynyt6.11.2010
Neutroni
xork
Moro, kehitin tavan kertoa kaksi kolminumeroista lukua nopeasti keskenään. Jahka aikaani saan tuhlattua, niin kehitän tekniikkaa siten että sitä voi käyttää kaikenlaisten lukujen kertomiseen.

1. Otetaan kaksi lukua: 123 ja 456
2. Asetetaan ne allekkain
[code:2plf98xd]
123
456
[/code:2plf98xd]
3. Kerro luvut 1 ja 4 ja kerro 10:llä, saat 40
4. Kerro 1*5, kerro 2*4, ja summaa kaikki kolme ja kerro kymmenellä. Saat (40+5+8)*10=530.
5. Kerro 1*6, 2*5, 3*4, summaa kaikki neljä ja kerro kymmenellä. (530+6+10+12)*10=5580
6. Kerro 2*6, 3*5, summaa kaikki kolme ja kerro kymmenellä (5580+12+15)*10=56070
7. Kerro 3*6 ja summaa toisiinsa. 56070+18 = 56088




Tuontapaista algoritmia hyödynnetään esimerkiksi 8 bittisillä mikrokontrollereilla, kun halutaan kertoa 16 tai 32 bittisiä lukuja. Työmuistista tuollaisen laskeminen on kiinni. Minulla muisti riittää kaksinumeroisten lukujen kertomiseen, jos ympäristö on täydellisen hiljainen ja paineeton (eli kukaan ei odota vieressä tulosta), mutta kolminumeroisilla pukkaa "out of memory error".

Menetelmää voi soveltaa kaksinumeroisiinkin.
Esim 12*34
1. 1*3*10=30
2. 1*4+2*3+30 ||*10 =400
3. 2*4+400=408

amandrai
Seuraa 
Viestejä205
Liittynyt26.4.2010
xork

Menetelmää voi soveltaa kaksinumeroisiinkin.
Esim 12*34
1. 1*3*10=30
2. 1*4+2*3+30 ||*10 =400
3. 2*4+400=408



Onko olemassa sellaiset kaksinumeroiset luvut joille esittämäsi tapa laskea olisi helpompi kuin 12*34=(10+2)*34 = 340 + 68 = 408.

Vierailija

No kyllä helpointa on laskea siten että

1. 100*456 +
2. 2*456 (ja nolla perään...) +
3. 3*456 (ja ei nollaa perään..)

ja sama juttu kaksinumeroisilla (etenkin ..)

12*34 --->

1. 10*34 +
2. 2*34

Säälittäviä nuo muut tavat...

Tuontapaista algoritmia hyödynnetään esimerkiksi 8 bittisillä mikrokontrollereilla
Ilmanko nää uudet kyvyt tekee niin perkeleen heikkoja algoritmeja...

Neutroni
Seuraa 
Viestejä26870
Liittynyt16.3.2005
KBolt
Ilmanko nää uudet kyvyt tekee niin perkeleen heikkoja algoritmeja...



Näytä nyt sitten montako kellojaksoa saat karsittua vaikkapa Atmelin esimerkkikoodista 16 * 16 bittisille luvuilleAVR 201, vai tuuliko huulia heiluttelee?

Vierailija
Neutroni
KBolt
Ilmanko nää uudet kyvyt tekee niin perkeleen heikkoja algoritmeja...



Näytä nyt sitten montako kellojaksoa saat karsittua vaikkapa Atmelin esimerkkikoodista 16 * 16 bittisille luvuilleAVR 201, vai tuuliko huulia heiluttelee?

kakstoista...

No joo, myönnän sen että mikrokontrollerin ohjelmoinnissa laskenta menee kuten kerroit mutta tässä ketjussa oli kai kyse päässälaskutavoista?

Jokin toinen ketju voisi kenties paneutua kontrollerin ohjelmointiin ja algoritmien optimointiin? Siitäkin on vähän kokemusta. Tosin ajalta jolloin avr:ää ei ollut edes suunnittelijan märissä unissa.

JuhnuZ
Seuraa 
Viestejä47
Liittynyt29.12.2011

Kyllä se nopein tapa laskea päässä on sama, kuin paperillakin, eli ensin sadat, sitten kymmenet ja ykköset ja plussataan välillä. Mutta jokainen tavallaan.

Ohman
Seuraa 
Viestejä1637
Liittynyt17.10.2010
xork
korant
Eikös tuo ole tismalleen sama kuin kynällä ja paperilla kertominen paitsi ettei kerrota kymmenellä vaan summien sijainti asettuu automaattisesti oikean dekadin kohdalle.




Kynällä ja paperilla lasketaan ykkösistä kymmeniin ja sitten satoihin päin, kun tämä menetelmä tuo tuloksen isoista pieniin numeroihin.



Kyllä kynällä ja paperilla laskien voi yhtä hyvin kertoa suuremmasta päästä aloittaen. Tällöin "normaalilla" tavalla laskettu viimeinen (alin) vaakarivi syntyy ensimmäisenä, toiseksi viimeinen toisena j.n.e. ensimmäinen rivi viimeisenä. Kun normaalitavassa rivit siirtyvät alaspäin mennessä pykälän vasemmalle tässä käännetyssä järjestyksessä rivit on pantava siirtymään aina yhden pykälän oikealle.

Mitään eroa ei laskutavoissa ole muuta kuin järjestys ja ulkonäkö.

Ohman

Uusimmat

Suosituimmat