Wpisany przez Michał Witaszek,
11 lipca 2013 08:24
Liczbami automorficznymi nazywamy takie liczby, które podniesione do kwadratu zawierają w końcówce samą siebie. Np. 52 = 25, 62 = 36. Ciekawostką jest to że, liczby automorficzne w zapisie dziesiętnym zawsze kończą się na 5 lub 6.
Czy liczba naturalna n o dowolnej podstawie m jest automorficzna można sprawdzić za pomocą następującego równania:
n to badana liczba,
m to podstawa liczby,
k oznacza ilość cyfr w liczbie n.
Jeśli powyższe równanie jest prawdziwe dla zadanej liczby naturalnej n oznacza to że, liczba jest automorficzna.
n = 25,
m = 10 (ponieważ liczba jest zapisana w systemie dziesiętnym),
k = 2 (ponieważ liczba została zapisana za pomocą dwóch cyfr – nie należy liczyć ewentualnych zer wiodących!)
Prostą metodą możemy znaleźć wartość mk,wystarczy że podstawę m będziemy podnośnic do kolejnej potęgi aż wynik będzie większy lub równy zadanej liczbie n.
101 = 10, wynik mniejszy niż 25 – iterujemy dalej;
102 = 100, wynik większy niż 25.
Dostosowując powyższą metodę uzyskujemy pełny algorytm przy pomocy którego, możemy sprawdzić czy zadana liczba naturalna n o dowolnej podstawie m jest automorficzna. Taki algorytm możemy przedstawić za pomocą następującej listy kroków:
Działanie algorytmu można zilustrować za pomocą poniższego schematu.
Czy liczba naturalna n o dowolnej podstawie m jest automorficzna można sprawdzić za pomocą następującego równania:
n=n^2 \mod m^k
Gdzie:n to badana liczba,
m to podstawa liczby,
k oznacza ilość cyfr w liczbie n.
Jeśli powyższe równanie jest prawdziwe dla zadanej liczby naturalnej n oznacza to że, liczba jest automorficzna.
Przykład:
25 w systemie dziesiętnym.n = 25,
m = 10 (ponieważ liczba jest zapisana w systemie dziesiętnym),
k = 2 (ponieważ liczba została zapisana za pomocą dwóch cyfr – nie należy liczyć ewentualnych zer wiodących!)
25^2 \mod 10^2 = 625 \mod 100 = 25
Wynikiem równania dla n = 25 jest liczba 25, więc jest ona automorficzna (252 = 625).Prostą metodą możemy znaleźć wartość mk,wystarczy że podstawę m będziemy podnośnic do kolejnej potęgi aż wynik będzie większy lub równy zadanej liczbie n.
Przykład:
n = 25101 = 10, wynik mniejszy niż 25 – iterujemy dalej;
102 = 100, wynik większy niż 25.
Dostosowując powyższą metodę uzyskujemy pełny algorytm przy pomocy którego, możemy sprawdzić czy zadana liczba naturalna n o dowolnej podstawie m jest automorficzna. Taki algorytm możemy przedstawić za pomocą następującej listy kroków:
- pobierz n, m
- utwórz zmienne pomocnicze a, b
- b = m
- dopóki b < n
- b = b*m
- a = n2 mod b
- jeśli a = n liczba jest automorficzna
Działanie algorytmu można zilustrować za pomocą poniższego schematu.
Przykład w JavaScript:
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Michał Witaszek | C/C++ | .cpp | .cpp | ***** / 6 | |
Michał Witaszek | Delphi/Pascal | .pas | .pas | ***** / 0 | |
Michał Witaszek | JavaScript | .js | .js | ***** / 0 | |
Michał Witaszek | Java_Block | .jbf | .jbf | ***** / 0 |
Poprawiony: 05 czerwca 2015 22:35
Komentarze
+1
#
adns
2013-07-16 18:13
czy to ma jakies praktyczne zastosownie, czy to tylko ciekawostka?
Odpowiedz | Odpowiedz z cytatem | Cytować
+5
#
Filip666
2014-10-14 20:02
Jak pójdziesz na UMCS na informatykę, to będzie Cię tym Drzewkowski katował... =___="
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz