Tropiąc kwadrat
Na filmiku w Youtube pan matematyk tłumaczy, jak ustalić, czy liczba jest kwadratem (a ściślej, że nim nie jest). Gdyby nie dobitny ton parominutowego wykładziku, pewnie usnąłbym w połowie. Niestety, dowody matematyczne często muszą być bliskie łopatologii, żeby trafiały do najbardziej opornych.
Zapewne dla większości wystarczyłoby stwierdzenie: potęga iloczynu równa jest iloczynowi potęg, a stąd wniosek, że podnosząc do kwadratu jakąś liczbę, równocześnie podnosimy do kwadratu każdy z czynników pierwszych, na które można ją rozłożyć. Czy wiedząc o tym można sprawdzić „kwadratowość” liczby? Teoretycznie tak, ale rozkładania dużej liczby na czynniki pierwsze „gołymi rękami” nikomu nie życzę. W praktyce taki sposób może być przydatny tylko do wyeliminowania kwadratu przez sprawdzenie podzielności podejrzanej liczby przez małe liczby pierwsze i ich kwadraty. A zatem, jeżeli liczba dzieli się przez 2 (3, 5), a nie dzieli przez 4 (9, 25), to sio! Taki przykład (z trójką i dziewiątką) jest we wspomnianym filmiku.
Zabawa rozpoczęta w poprzednim wpisie polega na znalezieniu prostego sposobu ustalenia z prawdopodobieństwem bardzo bliskim pewności (prawie 99 %), że jakaś duża liczba jest kwadratem. Albo inaczej: na wyeliminowaniu wielkiej liczby z grona podejrzanych o „kwadratowość”. Przyjmijmy, że duża to taka, która nie mieści się w okienku popularnego kalkulatora, czyli ponad 8-cyfrowa.
Przypomnę dwa podstawowe „sita”.
Liczba nie jest kwadratem, jeśli:
1. nie kończy się jedną z następujących par:
00, 01, 04, 09, 16, 21, 24, 25, 29, 36, 41, 44, 49, 56, 61, 64, 69, 76, 81, 84, 89, 96.
2. jej ostateczna suma cyfr (jednocyfrowa suma sumy sumy… cyfr) nie równa się 1, 4, 7 lub 9.
Trzecie i ostatnie sito jest nieco większe, bo jakby potrójne, ale proste w obsłudze. Zademonstruję jego działanie na przykładzie 16-cyfrowej liczby z początku poprzedniego wpisu – 2 172 602 007 770 049.
Nad grupami liczby pokawałkowanej od końca na 3-cyfrowe grupy stawiamy (także od końca) na przemian plusy i minusy:
– + – + – +
2 172 602 007 770 049
Grupy traktujemy jak liczby poprzedzone umieszczonymi nad nimi znakami i zapisujemy całość w postaci sumy algebraicznej:
– 2 + 172 – 602 + 7 – 770 + 49 = – 1374 + 228
Jeżeli bezwzględna wartość sumy liczb z minusami jest większa niż z plusami, to dodajemy do plusów 1001 tyle razy, aż suma plusów przekroczy bezwzględną sumę minusów, czyli w tym przypadku dwukrotnie i obliczamy wynik S (gdyby natomiast plusy przekraczały minusy o więcej niż 1000, możemy na podobnej zasadzie zmniejszyć je o odpowiednią wielokrotność 1001):
– 1374 + 228 +1001 +1001 = 856
S nigdy nie przekroczy 1000, czyli będzie łatwe do dalszej „obróbki” – i o to chodzi.
Testowana liczba nie jest kwadratem, jeśli reszta z dzielenia S przez:
– 7 nie jest równa 0, 1, 2 lub 4;
– 11 nie jest równa 0, 1, 3, 4, 5 lub 9;
– 13 nie jest równa 0, 1, 3, 4, 9, 10 lub 12.
Dzieląc 856 przez 7 otrzymamy resztę 2, czyli podejrzenie pozostaje. Resztą z dzielenia przez 11 jest 9, a więc liczbę nadal mamy na sicie. Dopiero po podzieleniu przez 13 (reszta 11) uzyskujemy pewność, że 2 172 602 007 770 049 nie jest kwadratem.
Wystarczyłoby zmienić ostatnią cyfrę (9), aby testowana 16-cyfrowa liczba stała się kwadratem. Gdybym zapytał, jaka cyfra powinna zastąpić dziewiątkę, to zagadka byłaby prosta i czysto rachunkowa – z dwóch możliwych końcowych par (41 i 44) tylko po wstawieniu tej pierwszej utworzona liczba 2 172 602 007 770 041 nie odpadłaby w żadnym z trzech testów, ponieważ jest kwadratem 46 611 179. Proponuję więc odrobinę trudniejszą zabawę związaną z liczbą 2 172 602 007 770 041.
Stosując do tej liczby test ostatecznej sumy cyfr, można zauważyć, że końcowa para, decydująca o „kwadratowości” (41), równa jest sumie wszystkich pozostałych cyfr. Proszę znaleźć najmniejszy kwadrat o takiej samej własności.
Komentarze z prawidłowymi rozwiązaniami uwalniane są wieczorem w przeddzień kolejnego wpisu. Wpisy pojawiają się co 3-4 dni.
Komentarze
00=0^2 🙂
A bardziej serio:
21609 = 147^2
i kolejna: 23409 = 153^2
a) Korzystając z końcówek i reguły ost. sumy można dostać wszystkie możliwe końcówki:
09
29
36
41
44
56
81
b) końcówka 29 wymaga liczby co najmniej 6-cyfrowej: 999 -> 27
c) końcówkę 09 można dostać z 3 i 53 oraz 47 i 97
sprawdzamy po kolei: 3, 47, 53, 97, 103, 147 i voila.
P.S. Czy autor może wie (nie chce mi się zapuszczać komputera), jaki jest pierwszy nie-kwadrat przechodzący 3 testy?
Niestety, autor nie wie (i też mu się nie chce 🙂 ), ale również jest b. ciekaw, więc zwraca się o pomoc w poszukiwaniach do wszystkich programistów dobrej woli i chęci.
mp
147^2=21609
Takie kwadraty tworza ciag, ktory zaczyna sie tak (w nawiasach podstawy):
21609 (147), 23409 (153), 205209 (453), 2241009 (1497), 2486929 (1577), …
a
364 jest najmniejszą liczbą przechodzącą wszystkie testy, a nie będącą kwadratem.
Do 10000 są 93 takie liczby. Skuteczność: 99,07%
Do 100000 są 1352 takie liczby. Skuteczność: 98,648%
Dzięki feniksie86.
W międzyczasie mój komputer policzył 😉 , że do nieskończoności jest nieskończenie wiele takich liczb, a skuteczność wynosi 98,359% (Bayes)
mp
Można jeszcze zastosować jeden prosty test, wykluczający jedną trzecią liczb. Liczba, która przy podzieleniu przez 3 daje resztę 2, nie może być kwadratem. Może fenix86 mógłby sprawdzić „statystycznie”, na ile to poprawi skuteczność eliminacji potencjalnych kwadratów. Ale np. 364 przez ten test też przechodzi.
Dopiero teraz przeczytałem tekst „Jej kwadratowość” i widzę, że podany przeze mnie w poprzednim komentarzu „test kwadratowości” pokrywa się z metodą „ostatecznej sumy cyfr”.
Generalnie wszystkie podane sita opierają się na jednej tożsamości:
(mn+k)^2=(mn)^2+2mnk+k^2
gdzie:
m jest dowolną liczbą naturalną
n jest stosunkowo małą liczbą naturalną, przez którą dzielimy
k=0,1,…,n-1
Z podanego wzoru wynika, że liczba może być kwadratem tylko wtedy, gdy reszta z jej dzielenia przez n jest taka, jak jedna z wartości, którą może przyjmować reszta z dzielenia k^2 przez n. Mamy więc:
dla n=3 reszty 0, 1
dla n=4 reszty 0, 1
dla n=5 reszty 0, 1, 4
dla n=6 reszty 0, 1, 3, 4
dla n=7 reszty 0, 1, 2, 4
dla n=8 reszty 0, 1, 4
dla n=9 reszty 0, 1, 4, 7
dla n=10 reszty 0, 1, 4, 5, 6, 9
dla n=11 reszty 0, 1, 3, 4, 5 , 9
dla n=12 reszty 0, 1, 4, 9
dla n=13 reszty 0, 1, 3, 4, 9, 10, 12
itd.
Ostateczna suma cyfr wynika z reszt z dzielenia przez 3
Ostatnia cyfra 0, 1, 4, 5, 6, 9 z dzielenia przez 10
Dwie ostatnie cyfry wynikają z dzielenia przez 100 liczby 20k+k^2
Trzecie sito to oczywiście wykorzystanie dzielenia przez 7, 11 i 13 oraz tego, że 7x11x13=1001, a warunek podzielności przez 1001 jest podobny jak przez 11, tylko zamiast zmiany znaku dla kolejnych cyfr robimy to dla grup trzycyfrowych
Michale, masz oczywiście w stu procentach rację, jeśli chodzi o teoretyczne podstawy sprawdzania „kwadratowości”.
Chciałbym tylko podkreślić, że istotą testu jest, aby był maksymalnie skuteczny i łatwy w obsłudze (ręcznej). Sito 7-11-13 ma obie zalety, bo jego skuteczność to 98% z hakiem, a dzielna jest co najwyżej 3-cyfrowa. Szukanie reszt, gdy dzielniki są inne niż 7,11 i 13 a dzielne kilkunastocyfrowe albo większe jest bardziej żmudne.
Na marginesie: całe te rozważania są mocno teoretyczne, bo nie słychać, aby ktokolwiek miał problem z rozstrzyganiem, czy jakaś wielka liczba jest kwadratem, czy nie. Choć z drugiej strony byłoby fajnie, gdybyśmy mieli tylko takie kłopoty.
Pozdrav
m
Oczywiście zgadzam się z tym, że test powinien być przede wszystkim „łatwy w obsłudze ręcznej” (bo inaczej każdy od razu zastosuje do obliczeń kalkulator czy komputer). Celem mojego poprzedniego wpisu było pokazanie, że wszystkie trzy sita, choć na pierwszy rzut oka całkiem różnie skonstruowane, opierają się na tym samym wzorze. Łatwo też zauważyć, że do testu należy używać liczb pierwszych, czyli właśnie 3, 7, 11 i 13. Wyjątek stanowi 10 zamiast 5, ale tylko dlatego, że uzywany dziesiętnego systemu zapisu liczb.
Ciekawostka: 364 czyli najmniejsza liczba, która przechodzi wszystkie trzy testy choć kwadratem nie jest, zostałaby odrzucona przez test oparty na liczbie 17. Szkoda tylko, że nie ma prostej metody (a może jest, tylko ja jej nie znam) sprawdzania podzielności przez 17.
Co do ewentualnych praktycznych zastosowań rozstrzygania, czy dana liczba jest kwadratem, nie byłbym takim pesymistą. Czy ktoś 30 lat temu przewidywał, że wielocyfrowe liczby pierwsze mogą mieć jakiekolwiek zastosowanie w technice?