Problemik
Tym razem będzie nieco poważniej i bardziej teoretycznie. Chodzi o mały problem arytmetyczny, który pewnemu matematykowi-amatorowi spędza sen z powiek.
W matematyce jest trochę umownych i nieumownych ustaleń, które mają swoje uzasadnienia. Oto kilka przykładów:
- zero jest liczbą naturalną lub (rzadziej) nie jest;
- nie dzielimy przez zero, bo to prowadzi do sprzeczności;
- zero i jeden nie są liczbami pierwszymi, bo nie mają dokładnie dwóch dzielników (zero ma ich nieskończenie wiele, a jeden tylko jeden);
- silnia zera (0!) równa się 1; tu jest kilka uzasadnień, np. n!=n×(n-1)!, a ten wzór – przy założeniu, że 0!=0 – nie byłby prawdziwy dla n=1 (1!=1);
- zerowa potęga x równa się jeden, bo x^0=x^(1-1)=x^1/x^1=x/x=1
- minus razy minus daje plus; tu niełatwo o krótkie wyjaśnienie, ale spróbuję:
0=(-x+x)(-y+y)=(-x)(-y)-2xy+xy=(-x)(-y)-xy, stąd (-x)(-y)=xy.
A teraz tytułowy problemik.
Iloczyn cyfr P(x), tworzących liczbę x, jest zawsze dodatni, jeśli w liczbie nie ma zera. Na przykład: P(28)=16, P(123456789)=362880. I wszystko jest jasne dopóki nie zapytamy o iloczyn cyfr liczby jednocyfrowej. Jednej cyfry nie ma przez co mnożyć, a jeśli już trzeba mnożyć, to „coś” przez „nic”, więc wydawałoby się, że iloczyn powinien być równy zero. A jeszcze lepsze byłoby uznanie, że takiego iloczynu po prostu nie ma. Tymczasem w Encyklopedii ciągów liczb całkowitych z odpowiedniego ciągu (A007954) wynika, że iloczyn cyfr liczby jednocyfrowej jest równy tej liczbie, czyli np. P(7)=7. Czy ktoś potrafi to uzasadnić?
Komentarze
To zapewne kwestia konwencji, ale ja również skłaniałbym się ku temu, że P() od liczby jednocyfrowej równa się tej liczbie, a nie zeru. „Mnożenie przez nic” powinno tu być rozumiane jako „mnożenie przez coś neutralnego”, a więc 1. 0 jest neutralne w dodawaniu i odejmowaniu, ale w mnożeniu, dzieleniu, potęgowaniu, etc., takim „niczym” jest 1.
Jeżeli przyjęlibyśmy odwrotnie, to wtedy P() od liczby wielocyfrowej również można by pomnożyć przez 0, bo skoro dokonalismy takiego mnożenia dla liczby 1-cyfrowej, arbitralnie dodając jedną cyfrę 0 z przodu, to dlaczego nie dla 2-cyfrowej?
Uzasadnienie moim zdaniem jest podobne, jak w przypadku potęgowania. Skoro mamy:
n^3 = n x n x n
n^2 = n x n
n^1 = n
to podobnie:
– iloczyn cyfr liczby abc jest równy a x b x c
– iloczyn cyfr liczby ab jest równy a x b
– w takim razie „iloczyn” jednej cyfry a jest równy a
Wynika to z rozdzielności P(x), P(ab) = P(a)*P(b).
Dla liczb naturalnych iloczyn definiujemy za pomocą dodawania:
m * n = n+n+…+n (m egzemplarzy n)
W szczególności:
1*n = n
Iloczyn wieloczynnikowy dowolnych liczb:
i=m
∏ a(i) = a(1)*a(2)*..*.a(m)
i=1
BTW Czy to już wszystko na dzisiaj?
Niech x będzie dowolną liczbą naturalną:
x=(c_n-1, … , c_1, c_0)
Niech y będzie liczbą x z dopisaną gdzieś, np. na końcu, cyfrą 1:
y=(c_n-1, … , c_1, c_0, 1)
Liczba y ma co najmniej dwie cyfry, więc P(y) jest prawidłowym iloczynem. Jednak
P(y)=c_n-1∙ … ∙c_1∙c_0∙1=P(x∙1)=P(x)
Więc P(x) jest również prawidłowe. ∎
Uciekł gdzieś oczywisty wniosek, że na mocy powyższego dowodu jeżeli liczba y jest dwucyfrowa, to x jest jednocyfrowa i iloczyn jej cyfr (cyfry) jest prawidłowy.
Każdej liczbie naturalnej jest przyporządkowany iloczyn wszystkich liczb jednocyfrowych podniesionych do potęgi, której wielkość zależy od częstotliwości występowania danej cyfry w tejże liczbie naturalnej.
https://www.fotosik.pl/zdjecie/a914f67663378833
Uzasadnienie przewrotne: skoro iloczyn elementów pustego ciągu jest równy 1, to iloczyn z ciągu 1-elementowego nie może nie istnieć, ani być równy 0 🙂
W sumie jest to całkiem ciekawy temat do refleksji nad istotą tego co tu często robimy. Chętnie podzielę się swoimi uwagami i przemyśleniami. Może wywiąże się jakaś dyskusja?
_________________________________________
ad 1. Najprościej zdefiniować liczby naturalne jako liczebności (moce) zbiorów skończonych. Przy tej szlachetnej w swej prostocie definicji, liczby te powinny zawierać zero (moc zbioru pustego). Można zapytać czy zbiór pusty jest skończony, ale tak jest bardziej hmm… NATURALNIE, na pewno nie jest nieskończony. Jeśli więc zbiór pusty zaliczyć do skończonych to prosta definicja liczb naturalnych obejmie zero. Żeby się go pozbyć, trzeba ją komplikować dodając warunek niepustości zbiorów, co ujmie jej nieco piękna.
W praktyce jednak częściej niż rzadziej pozbywamy się zera, głównie z nawyku, nie faktycznej potrzeby. Zasada indukcji, zasada minimum / maksimum, działanie dodawania, operacja następnika (n -> n* = n+1, zanim jeszcze zdefiniujemy pełne dodawanie) – wszystko to obowiązuje w obu wersjach, z zerem i bez. Liczby naturalne z dodawaniem tworzą elementarną strukturę algebraiczną zwaną półgrupą (zbiór z działaniem łącznym), ale w wersji z zerem tworzą nawet monoid (półgrupę z elementem neutralnym).
Zbiór pusty można uznać za PODSTAWOWY jako moduł (element neutralny) dodawania (wszystkich) zbiorów (sumy mnogościowej). Dlatego też podoba mi się następująca konwencja, z która się kiedyś spotkałem:
{0; 1; 2; 3; … n; …} – liczby podstawowe
{1; 2; 3; … n; …} – liczby naturalne
____________________________
ad 2. Dzielenie to działanie odwrotne do mnożenia, które można zdefiniować dzięki temu, że mnożenie wyznacza elementy odwrotne. Element odwrotny do elementu a, to taki element a’ (ozn. 1/a), że:
a * a’ = a’ * a = 1 (1 to element neutralny: 1 * a = a * 1 =a).
Dzielenie przez a możemy zdefiniować jako mnożenie przez odwrotność a:
b / a = b * a’
co oczywiście ma sens tylko wtedy, jeżeli istnieje jednoznaczny element a’.
Dzielenie b / 0 = b * 0’ wymaga więc istnienia elementu 0’, co prowadziłoby do równości 0 * 0’ = 1. To niemożliwe, gdyż 0 * x = 0 (dla każdego x) oraz 0 ≠ 1.
c.d.n.
Dla liczb wielocyfrowych a, b zachodzi dosyć oczywista zależność:
P(a||b) = P(a)P(b);
słownie: iloczyn cyfr konkatenacji dwóch liczb jest równy iloczynowi iloczynów cyfr konkatenowanych liczb.
Żeby powyższego prawo funkcjonowało niezależnie od cyfrowości liczb a i b, trzeba przyjąć, że dla dowolnej liczby jednocyfrowej c P(c)=c.
ad2 c.d.
Inne, podobne podejście do dzielenia wiąże wynik dzielenia dwóch liczb: b/a=x z rozwiązalnością równania ax=b (pomijam symbol mnożenia). Ogólnie, w ciele liczbowym (strukturze algebraicznej o własnościach takich jak liczby rzeczywiste z dodawaniem i mnożeniem) łatwo udowodnić, że:
– jeśli a≠0, to dla dowolnych a i b istnieje jednoznaczny wynik dzielenia, tj. element x spełniający warunek: ax=b (x=a’b).
Pozostałe przypadki są wręcz oczywiste:
– jeśli a=0 i b≠0, taki element nie może istnieć, zatem dzieleniu nie można przypisać żadnego wyniku;
– jeśli a=b=0, każdy element x spełnia warunek ax=b więc wynikiem dzielenia może być każda liczba (lepiej nie preferować sztucznie żadnej).
ad 3
W tej definicji liczb pierwszych odwołujemy się do faktu, że każda liczba naturalna posiada dwa dzielniki trywialne: jedność i siebie samą, co wynika z tożsamości n=1*n. Można by zdefiniować liczby pierwsze jako nie posiadające innych dzielników poza trywialnymi. taka definicja obejmie jedynkę. Jednak oba dzielniki trywialne (1, n) są sobie równe w jedynym, tautologicznym przypadku n=1. Każda liczba poza jednością ma co najmniej dwa różne dzielniki. Ta osobliwość jedynki uzasadnia wykluczenie jej spośród liczb pierwszych (nie mówiąc już o psuciu jednoznaczności rozkładu na czynniki pierwsze).
Nieco inne podejście do liczb pierwszych uwzględnia fakt, że 1 jest wspólnym dzielnikiem wszystkich liczb. Podzielność dowolnej liczby a przez 1 jest oczywista, niczego nie wnosi ani nie mówi nic o samej liczbie a. Dlatego 1 można nazwać dzielnikiem niewłaściwym (bez właściwości). Teraz możemy zauważyć, że każda liczba poza jednością posiada dzielnik właściwy (sama siebie).
To pozwala na nieco inną, może i zgrabniejszą, definicję liczb pierwszych jako takich, które posiadają dokładnie jeden dzielnik właściwy.
@Markoniusz
…”x jest dzielnikiem każdej liczby x. Podzielność dowolnej liczby x przez x jest oczywista, niczego nie wnosi ani nie mówi nic o samej liczbie. Dlatego x można nazwać dzielnikiem niewłaściwym (bez właściwości). Teraz możemy zauważyć, że każda liczba x posiada, oprócz x, dzielnik właściwy: 1.
To pozwala na nieco inną, może i zgrabniejszą, definicję liczb pierwszych jako takich, które posiadają dokładnie jeden dzielnik właściwy”.
Słowa, słowa, słowa… Lubię bawić się słowami, więc może taka parafraza:
Liczby 1 i x są dzielnikami każdej liczby x. Podzielność dowolnej liczby x przez 1 i przez x jest oczywista, niczego nie wnosi ani nie mówi nic o samej liczbie. Dlatego zarówno 1, jak i x można nazwać dzielnikami niewłaściwymymi (bez właściwości). Teraz możemy zauważyć, że każda liczba x posiada, oprócz 1 i x, dzielnik właściwy: ups… To przecież FAŁSZ!
Jeszcze raz:
Teraz możemy zauważyć, że każda liczba złożona x posiada, oprócz 1 i x, dzielnik właściwy (różny od 1 i różny od x – z właściwościami).
To pozwala na nieco inną, może i zgrabniejszą, definicję liczb pierwszych jako takich, które nie posiadają dzielników właściwych.
Stąd liczba 1, jako najmniejsza liczba nie mająca dzielników właściwych, jest najmniejszą liczbą pierwszą.
Chciałeś dyskusji, ot i ona…
@xswedc
BTW Czy może wiesz co to są kwantyfikatory i do czego służą?
Słowa, słowa, słowa… prawdziwe i nieprawdziwe, przemyślane i bezmyślne.
Nie było moim zamiarem deprecjonowanie wypowiedzi Markoniusza. Chciałem żartobliwie zwrócić uwagę na to, że liczba 1 nie jest pierwsza dlatego, że taka jest definicja (kiedyś były inne), lecz odwrotnie – współczesna definicja jest taka, gdyż 1 nie jest liczbą pierwszą.
Ciekawsze byłoby wyjaśnienie przyczyn jej nie-pierwszości, niż skutków. Napiszę więc, jak historycznie rozumiano istotę pierwszości liczby 1. Z konieczności w ekstremalnym uproszczeniu i bez kwantyfikatorów:
Dość powszechna jest wiedza o problemach z uznaniem zera za liczbę, tymczasem 1 sprawiała nie mniejsze problemy. Nie była uważana za liczbę przez Greków, ale też za sprawą m.in. autorytetu Arystotelesa jeszcze w średniowieczu przyznawano jej osobny status. Kiedy wreszcie stała się pełnoprawną liczbą (ok. XIV w.) rozpoczęła się dyskusja o jej pierwszości. Część matematyków opowiadała się za, część przeciw. Argumenty były w większości estetyczne, czyli takie, jak liczba dzielników, dzielników właściwych, itp… Znany jest list Goldbacha do Eulera (XVIII w.), w którym opisuje on, nomen omen, hipotezę Goldbacha z jedynką, jako liczbą pierwszą, podczas gdy Euler traktował ją odmiennie. Tablice liczb pierwszych z 1 były publikowane jeszcze w XX w., po II Wojnie Światowej! Widać, że sprawa od zarania była uznaniowa, a patrząc w skali historycznej, skrystalizowała się w zasadzie przed chwilą.
Na przestrzeni dwóch ostatnich wieków traktowanie liczby 1, jako pierwszej stawało się coraz bardziej kłopotliwe, gdyż w wielu nowo powstających twierdzeniach matematycznych należało co rusz zastrzegać, że chodzi o liczby pierwsze większe od 1. Większość ważnych twierdzeń bez tego zastrzeżenia nie działała. Najważniejszym z nich jest Podstawowe twierdzenie arytmetyki o jednoznacznym rozkładzie liczby na czynniki pierwsze. Korzenie tego twierdzenia sięgają starożytności (Elementy), ale wtedy nie istniało 0, a 1 nie było liczbą, więc nie było problemu. Jednak kiedy dołączyły one do liczb, to okazało się, że rozkład wcale nie jest jednoznaczny.
Również kluczowe dla liczb pierwszych Sito Eratostenesa nie działa z 1, a wiele innych tworów matematycznych, nie działa lub staje się trywialne (np. małe twierdzenie Fermata dla p=1 wygląda zaskakująco niepoważnie).
Jedynka zaczęła przeszkadzać z przyczyn fundamentalnych, a nie uznaniowych. Nie pasowała do towarzystwa, więc w konsekwencji powstała definicja, która te niedopasowania uwzględnia. Ale droga była długa i wyboista.
@xswedc @Markoniusz
Dawno nie czytałem tak fascynującej dyskusji tu na (nomen omen) łamach łamibloga (nie ma tu żadnej ironii).
Kiedy moje córki (na razie w klasach II i III podstawówki) zapytają kiedyś, dlaczego 1 nie uznaje się za liczbę pierwszą, mam gotowe 10 minut monologu! Niestety, moje przydługie odpowiedzi na niektóre pozornie proste pytania raczej zniechęcają, niż zachęcają je do zadawania kolejnych pytań… więc będę musiał się streszczać. Ale streszczanie się to też znakomite ćwiczenie umysłu.
Można skorzystać z definicji indukcyjnej:
– iloczyn ciągu długości 0 to 1
– iloczyn ciągu długości n to iloczyn ciągu długości n-1 razy element numer n.
W ten sposób dla n=1 mamy 1 razy nasza pojedyncza liczba.
Ja bym poszedł w tę stronę, że uogólniłbym na iloczyn n cyfr, które mogą się powtarzać (zresztą mogłoby też być nie cyfr, a liczb po prostu, całkowitych, a nawet niekoniecznie). Mamy iloczyn a1*a2*…*an, i powiedzmy rozbijamy go na dwa: (a1*a2*…ak)*(ak+1*…*an). Mnożenie jest łączne i przemienne, a więc jak mamy iloczyn n czynników, to możemy go zapisać w postaci iloczynu iloczynów k czynników i (n-k) czynników, także dla k=1. W podanym przykładzie moglibyśmy kolejne liczby przerzucać do prawego nawiasu, aż zostałoby (a1)*(a2*…*an). Iloczyn w lewym nawiasie zredukował się do a1, a wynik całości musi być ten sam.
Chciałem jeszcze dodać jedną odpowiedź.
Dowolne działanie dwuargumentowe łączne # możemy rozszerzyć na wieloargumentowe właśnie dzięki łączności:
a # b # c := (a # b) # c = a # (b # c)
Wtedy element #(a,b,… z) = a # b # … # z jest dobrze określony.
A problematyczne rozszerzenie „w dół” czyli zawężenie działania do jednego argumentu? Wydaje się oczywiste, że to może być tylko identyczność #(a) := a. Ale można to poprzeć dobrym argumentem: dla każdego działania z modułem (elementem neutralnym) osiągniemy to samo fiksując jeden argument jako moduł w pierwotnym działaniu dwuargumentowym:
#(a) := a # e = a
Oczywiście chodzi tu o moduł ‘e’ tego działania ‘#’, a nie jakiegoś innego. A więc 1 dla mnożenia uogólnionego, nie 0.
Wszystko co tu mówimy jest w zasadzie elementarne i poniekąd bezdyskusyjne. Jednak zawsze mogą być różne podejścia i interpretacje, mniej lub bardziej przekonujące. a taka refleksja nad podstawami jest moim zdaniem warta zachodu, gdyż daje wiedzy solidny fundament.