7*8 = (2+3)*10+3*2 = 50+6 = 56 (można to łatwo sprawdzić w pamięci). Poprawność tego algorytmu dowodzimy dla iloczynów dwóch liczb m i n z przedziału {6, 7, 8, 9, 10}: (m-5+n-5)*10 +(10-m)*(10-n) = (m+n -10)*10 + (10-m)*(10-n) = = (m+n-10)*10-10m-10n+100+m*n = 10m+10n-100-10m-10n+100+mn = mn Sprawdźmy jeszcze dla dwóch innych przykładów z tabliczki mnożenia: 6*6 = (6-5+6-5)*10+(10-6)*(10-6) = 2*10+4*4=20+16 = 36 7*6 = (7-5+6-5)*10+(10-7)*(10-6) = 3*10+3*4 = 30+12 = 42 Zapraszam do dalszych obliczeń. * * * Muszę jednak uzupełnić moją wypowiedź. Podana przeze mnie tożsamość: m*n = (m-5+n-5)*10 +(10-m)*(10-n) OBOWIĄZUJE (OCZYWIŚCIE) RÓWNIEŻ DLA LICZB CAŁKOWITYCH m, n WIĘKSZYCH OD 10. MOŻNA JĄ ZASTOSOWAĆ do szybszego obliczania w pamięci iloczynów dwóch liczb naturalnych większych od dziesięciu. Stanowi ona sporą pomoc dla chcących szybko liczyć w pamięci! Jest w niej jedno proste dodawanie i jedno proste mnożenie liczb naturalnych mniejszych od liczb wyjściowych.
Na przykład: 11*11 = (11+11-10)*10 +(10-11)(10-11) = 120+(-1)*(-1) = 121,
12*12 = (12+12- 10)*10 +(10-12)*(10-12) = 14*10+(-2)*(-2) = 144,
....
15*15 = (15+15-10)*10+(15-10)*(15-10) = 225,
17*18 = (17+18-10)*10+(10-17)*(10-18) = 250+56 = 306,
27*28 = (27+28-10)*10 +(10-27)*(10-28) = 450+306 = 756. Teraz można znów wykorzystać wyjściową tożsamość: (m-5+n-5)*10 +(10-m)*(10-n) = (m+n -10)*10 + (10-m)*(10-n) = = (m+n-10)*10-10m-10n+100+m*n = 10m+10n-100-10m-10n+100 +mn = mn i zmodyfikować ją do jeszcze bardziej ogólnej postaci: (m-a+n-a)*2a+(2a-m)*(2a-n) = (m+n-2a)*2a+(2a-m)*(2a-n) = = 2a*(m+n)-4a2+4a2–2a*(m+n)+m*n = m*n, gdzie a jest liczbą naturalną. Na przykład gdy a=6, dla iloczynu 15*15 mamy: (30-12)*12+(15-12)*(15-12)=18*12+9=216+9=225; a dla iloczynu 17*18 mamy: 17*18=(17+18-12)*12+(12-17)*(12-18)=23*12+30=276+30=306 oraz dla 27*28 otrzymujemy: 27*28=(27+28-12)*12 +(12-27)*(12-28)= =(55-12)*12+15*16=43*12+240=516+240=756 Andrzej Bauer |