» »

Rusko množenje

Rusko množenje

1
2
»

Thomas ::

Ni vsak ravno optimalen.

33 krat nek večkratnik 3 je najboljš tko, kot sem rekel. Nevečkratnik 3 je pa morda boljš tkole:

33*17 = 510+51= 561

Seveda, to je zdej že druga zgodba, računanje na pamet, kot množenje s svinčnikom. Optimumi so tukaj drugje.

gzibret ::

Jaz bi 33*18 na pamet izračunal takole:

33*18= 2*330 - 2*33
Vse je za neki dobr!

strictom ::

Quikee:
33*18
66*9
66*10
660 - 66
594

Prisegam na ta način!!!
"Violence is the last refuge of the incompetent" - Salvor Hardin

Thomas ::

Najboljši način za NA PAMET zračunat 33*3N je

100*N-N

Me naute prepričal drgač!

Quikee ::

Thomas: Kdo te te hoce prepricat v kaj ? Pri racunanju na pamet vsak uporabi svoj nacin, ki se mu zdi primeren.. tukaj ni OPTIMALNOSTI, ker je enemu pac lazje racunat tak drugemu drugace. Mogoce bi nekdo na tvoj nacin pac vmes pozabil kje je in bi moral it racunat znova medtem ko se mu to na njegov nacin recimo to ne bi zgodilo... torej kateri nacin bi bil v takem primeru bolj optimalen za taksnega cloveka?

strictom ::

Mogoče je ta boljši:

33x18
33x10 + 33x5 + 33x3 :) pwnz
"Violence is the last refuge of the incompetent" - Salvor Hardin

Thomas ::

33*18=33*(3*6)=100*6-6

Tole je najbl anfoh. Vztrajam.

Quikee ::

33+33+33+33+33+33+33+33+33+33+33+33+33+33+33+33+33+33 je najbolj ajnfoh. Vstrajam. =)

Thomas ::

To NI njbolj anfoh in ti to veš.

No, vsaj vsi drugi.

strictom ::

Vsaj meni je ejnfoh.
"Violence is the last refuge of the incompetent" - Salvor Hardin

Thomas ::

Ni tako preprosto sešteti v tem primeru 18 enakih števil.

"Moja" formula je uporabna tudi za 33*78=100*26-26=2574.

Ti pa seštej oseminsedemdeset triintridesetk!

strictom ::

dej razlož malo od kod ti tam dobiš 100 pa od kod 26.
"Violence is the last refuge of the incompetent" - Salvor Hardin

Thomas ::

33*(3*N)=100*N-N.

Quikee ::

Nem sestevo oseminsedemdeset triintidesetk.. ampak triintrideset oseminsedemdesetk. =)

Thomas ::

Bo kar težka! Pazi, da se kje ne pomotiš! :))

strictom ::

33*(3*N)=100*N-N.

Zakaj lih je tam(3*N) ravno 3? od kje se je tam(100*N-N) tistih 100 prikradlo mi tut ni lih jasn? daj razloži malo ko zgleda še kar zanimivo ;>
"Violence is the last refuge of the incompetent" - Salvor Hardin

Thomas ::

Gor je eden dal primer 18*33. Povedal sem, kako se s 33 množi večkratnike števila 3. Ko bo to splošno dojeto, bom mogoče dal še formuli za 3*N+1 in 3*N+2.

Ampak ostanimo pri temle:

33*(3*N)=99*N=(100-1)*N=100*N-N.

Tko simple, da glava boli!

strictom ::

hvala.
"Violence is the last refuge of the incompetent" - Salvor Hardin

Beernarrd ::

kvadriranje po vzorcu znane formule:
75^2=
49+
.70+
..25=
5625

A kdo pozna kaj podobnega za korene?

Thomas ::

Če znaš računati desetiške logaritme, je potem kvadratni koren tamala malca. (Deliš z 2 in exponiraš, pa je.)

Ampak kako se računajo desetiški logaritmi?

Tkole, primer za 2:

Kolikokrat moramo deliti 2 z 10, da pridemo pod 10?

0 krat. Dobili smo celi del logaritma, ki je 0. Potem damo to kar imamo (2 imamo še vedno) na 10. Dobimo 1024.

Kolikokrat moramo deliti 1024 z 10, da pridemo pod 10? 3 krat. Dobili smo prvo decimalko, 3.

1,024 damo na 10. Dobimo 1,276. Kolikokrat moramo deliti z 10, da pridemo pod 10? Ničkrat. Imamo drugo decimalko, 0.

1,276 damo na 10 in dobimo 10,71. Kolikokrat moramo deliti 2 z 10, da pridemo pod 10? Enkrat. Dobili smo tretjo decimalko logaritma 2, to je 1.

Tako le log(2)=~0,301

Postopek nadaljujemo in v vsakem krogu imamo novo decimalko.

drejc ::

...in ko maš enkrat logaritme ti ni treba znat niti množit niti delit na pamet. 8-)
"Rise above oneself and grasp the world"
- Archimedes of Syracuse

Thomas ::

_input number

_for n=1 to 12
_____decimalka=0
_____while (number>=10)
__________number=number/10
__________incr decimalka
_____wend
_____output decimalka
_____number=number^10
_next n

Tkole bi Jurij Vega (magari na svinčnik) dovolj zlahka zračunal svoje logaritme na (naprimer) 12 mest.

Zgodovina sprememb…

  • spremenil: Thomas ()

gzibret ::

Thomas - ta tvoj postopek za računat desetiške logaritme je že OK, samo kako pa na pamet izračunat x na 10? No, 2 na 10 že ni problem, kaj pa 2.1 na 10? A obstaja kakšna hitra metoda.

Se pa spomnem, da je imel naš prof. za kemijo neko metodo, kako na pamet deliti ogromne cifre, kot je npr. 137846298374/3234454, decimalna mesta pa je dobival s hitrostjo 1 decimalnega mesta na 20 sekund (do kakšnega 6 ali 7 decimalnega mesta), za naprej pa je šlo bolj počasi.
Vse je za neki dobr!

Thomas ::

Ne, ne, sej ta postopek ni za na pamet. To je dobr, če maš samo svinčnik in papir, tako kot Jurij Vega, iz založbe pa že sprašujejo, kdaj boš oddal tablice v tisk.

Kolikor je meni znano, Jurij Vega tako simple postopka ni poznal. Lahko pa da ga je, pa je bil njegova poslovna skrivnost.

Thomas ::

Seveda se da na analogni način računati dvojiške logaritme, v dvojiškem sistemu. Potem delimo število z 2 tolikokrat, da pridemo pod 2, potem pa dobljeno kvadriramo. Tako v krog.

0 ali 1 potrebnih deljenj je naslednja binalka dvojiškega logaritma poljubnega števila.

Get out of here! ;)

vladika ::

Primer kako hitro izračunati 27*23
Ker sta desetici enaki in vsota enic je enaka deset velja 2*(2+1) in 7*3
Sledi 2*3 in 21
6 in 21
In napišemo skupaj 621

Še en primer 69*62
Rešimo 68*62+1*62
Velja enakot zgoraj 6*(6+1)in 8*2+1*62
Sledi 6*7 in16+62
42 in78
In napišemo skupaj4278

REŠITEV:D*(D+1) in E1*E2=Vsota.
Seveda če drži da sta desetici enaki in če je vsota enic enaka deset.
Pa lep pozdrav!

VLADIKA

Thomas ::

23*27=25*25-4

Tko bi jest.

Če obstaja sredina med dvema številoma, ki jih je treba zmnožit, je to zmerej tko.

(a+X)*(a-X)=a*a-X*X

33*27=30*30-3*3

58*62=60*60-2*2

TheHijacker ::

Zanimivo ampak kje bi bilo to lahko uporabno? Sem na hitro spisal kodo v PHP-ju:



$prva = 13;
$druga = 25;

$zmnozek1 = $prva * $druga;
$zmnozek2 = 0;

if ($prva % 2 != 0)
$zmnozek2 += $druga;

while ( (int) ($prva / 2) > 0)
{
$prva = (int) $prva / 2;
$druga = $druga * 2;
if ($prva % 2 != 0)
$zmnozek2 += $druga;
}

echo $zmnozek1." : ".$zmnozek2;



Ali je tu mišljeno način kako se dejansko izračuna recimo 13 * 25? Mogoče ve po kakšnem postopku to računa računalnik? Je rusko hitrejše?
http://www.google.si

Thomas ::

Implementacija množenja v današnjih procesorjih je optimizirana na čas in na kar veliko porabo energije. NAND pa tko ...

TheHijacker ::

Za zmnožek dveh dokaj nizkih števil med seboj je morda malenkost hitreje. Ko pa množiš več števil hkrati je pa veliko slabše:


Prva stevilka: 12345
Druga stevilka: 12345

Mnozenje stevil med seboj od: 1 do 100.

Direkten zmnozek dveh stevil: 152399025
Ta del se je zgeneriral v 0.000091 sek.

Zmnozek po ruski metodi: 152399025
Ta del se je zgeneriral v 0.000088 sek.

Direkten zmnozek stevil od med 1 in 100
Ta del se je zgeneriral v 0.000088 sek.

Direkten zmnozek stevil od med 1 in 100 po ruski metodi
Ta del se je zgeneriral v 0.016157 sek.


Ne vidim poante.
http://www.google.si

Gundolf ::

Ergo v phpju to ni uporabno :D

Tako (recimo raje podobno) množi procesor, ne pa da ta algoritem uporabljaš v nekem high level programskem jeziku.

Lahko pa po istem principu narediš potenciranje (za katerega ni direktnega ukaza v procesorju) in potem primerjaš, če je tvoja koda hitrejša/počasnejša od tiste, ki je vgrajena v uporabljen jezik.

mescaline9 ::

Za papirnato uporabo ruska metoda kaj hitro odpove, js sm za poskus vzel produkt 1352*768:) Sej rezultat je pravilen, samo čas, ki je za to potreben je veliko večji kot pri klasični metodi iz OŠ:) Preveč pisanja je, pa končno seštevanje vzame velik časa, ker je veliko členov. Pri konvencionalnem množenju imaš 3 stolpce za seštet, pri ruskem pa kar 8. Tko da za papir bo še vedno uporabna standardna metoda.

Thomas ::

Danes sem na avtocesti (!) razmišljal o deljenju.

1001/17

950+3*17

100+50*17+3*17

15+5*17+50*17+3*17

15+58*17.

Deluje in je kar lahko.

DOOM_er ::

Thomas hudo. Toda a deluje brez izjem
Robots will steal your job. But that's OK

Thomas ::

Ja, deluje brez izjem.

fat boy slim ::

Evo, da še jst dodam eno poenostavitev računanja. Beernarrd je uporabil drugačen način.

Poenostavitev velja za kvadrate števil, ki se končajo s cifro 5 (15,25,35, ... , x5)

x5^2 = x5 * x5 => pomnožimo x * (x+1) = y => rezultat = y25

hmm zgleda mal čudno sam poglejte na konkretnem primeru:

35^2 = 35 * 35 => 3 * (3+1) 12 => 1225 ;)

Zgodovina sprememb…

ping ::

Je kdo že poskusil tole srednjeveško metodo deljenja?
Enkrat sem se igral s tem, potem pa obupal. Je pa zadeva zanimiva.

fireice ::

Se vedno mi ni jasna metoda za kvadratni koren. Kaj moras deliti z in eksponirati?

Thomas ::

Hja ... kvadratni koren "pismeno". Hudič! Bom premislu.

fireice ::

sem nasel eno drugo metodo za resevanje kvadratnih korenov
tukaj
1
2
»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Matematika: Deljivost naravnih in celih števil.

Oddelek: Šola
193258 (3060) lebdim
»

Odprl sumljiv fajl - kaj zdaj?

Oddelek: Informacijska varnost
81469 (1172) Malcolm_Y
»

Matematika - FMF (strani: 1 2 )

Oddelek: Šola
8710401 (8134) sherman
»

Tranzistor BC238, ojačanje večje od 30 dB.

Oddelek: Elektrotehnika in elektronika
102008 (1784) Spajky
»

Peš računanje logaritma

Oddelek: Znanost in tehnologija
71973 (772) snow

Več podobnih tem