Gdy nie chce się rozwiązywać zadań można napisać program, który pomoże. Tylko czy to aby na pewno jest łatwiejsze i szybsze? Ciekawe jednak przeanalizować całą klasę zadań.
Uwielbiam rozwiązywać zadania logiczne, zwłaszcza tzw. matematyki rekreacyjnej. Nowy dodatek GW pod tytułem "Na pamięć" dostarcza mi co tydzień nową porcję wysokiej jakości zadań tego typu. Zwróciłem uwagę na jeden z typów takich zadań postaci:
x.W = k * W.x
gdzie W oznacza wielocyfrową liczbę, x liczbę jednocyfrową, a k pewną stałą całkowitą lub jej odwrotność. Gwiazdka to oczywiście mnożenie. Kropka w zapisie oznacza konkatenację cyfr, a więc raz x jest dołączane na początek naszej liczby W, a raz na koniec.
Rozwiązałem w "Na pamięć" dwa takie zadania: Jedno z x=5, k=2; a drugie z x=1, k=1/3 i dodatkowa informacja, że W ma 5 cyfr. Wszystko zrobiłem ręcznie na papierze. Trudniejsze i ciekawsze było to pierwsze, bo nieznaliśmy liczby cyfr i okazało się, że W ma ich aż 17. Pomyślałem jednak, że ciekawie byłoby zbadać wszystkie pozostałe przypadki. Napisałem, więc wcale nie banalny program i tak powstała poniższa tabelka, w której zaznaczyłem rozwiązania uzyskane też ręcznie:
x\k | 1 | 2 | 3 | 4 |
1 | 2/11 | 0 | 0 | 0 |
2/11 | 0 | 5/42857 | 0 | |
2 | 1/2 | 17/10526315789473684 | 0 | 0 |
1/2 | 0 | 5/85714 | 0 | |
3 | 1/3 | 17/15789473684210526 | 27/103448275862068965517241379 | 0 |
1/3 | 0 | 0 | 0 | |
4 | 1/4 | 17/21052631578947368 | 27/137931034482758620689655172 | 5/10256 |
1/4 | 0 | 0 | 0 | |
5 | 1/5 | 17/26315789473684210 | 27/172413793103448275862068965 | 5/12820 |
1/5 | 0 | 0 | 0 | |
6 | 1/6 | 17/31578947368421052 | 27/206896551724137931034482758 | 5/15384 |
1/6 | 0 | 0 | 0 | |
7 | 1/7 | 17/36842105263157894 | 27/241379310344827586206896551 | 5/17948 |
1/7 | 0 | 0 | 0 | |
8 | 1/8 | 17/42105263157894736 | 27/275862068965517241379310344 | 5/20512 |
1/8 | 0 | 0 | 0 | |
9 | 1/9 | 17/47368421052631578 | 27/310344827586206896551724137 | 5/23076 |
1/9 | 0 | 0 | 0 |
x\k | 5 | 6 |
1 | 0 | 0 |
0 | 0 | |
2 | 0 | 0 |
0 | 0 | |
3 | 0 | 0 |
0 | 0 | |
4 | 0 | 0 |
0 | 0 | |
5 | 41/10204081632653061224489795918367346938775 | 0 |
0 | 0 | |
6 | 41/12244897959183673469387755102040816326530 | 57/101694915254237288135593220338983050847457627118644067796 |
0 | 0 | |
7 | 5/14285 | 57/118644067796610169491525423728813559322033898305084745762 |
0 | 0 | |
8 | 41/16326530612244897959183673469387755102040 | 57/135593220338983050847457627118644067796610169491525423728 |
0 | 0 | |
9 | 41/18367346938775510204081632653061224489795 | 57/152542372881355932203389830508474576271186440677966101694 |
0 | 0 |
x\k | 7 | 8 | 9 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | |
2 | 0 | 0 | 0 |
0 | 0 | 0 | |
3 | 0 | 0 | 0 |
0 | 0 | 0 | |
4 | 0 | 0 | 0 |
0 | 0 | 0 | |
5 | 0 | 0 | 0 |
0 | 0 | 0 | |
6 | 0 | 0 | 0 |
0 | 0 | 0 | |
7 | 21/101449275362318840579 | 0 | 0 |
0 | 0 | 0 | |
8 | 21/115942028985507246376 | 12/101265822784 | 0 |
0 | 0 | 0 | |
9 | 21/130434782608695652173 | 12/113924050632 | 43/1011235955056179775280898876404494382022471 |
0 | 0 | 0 |
Zera oznaczają, że w zakresie do 100 cyfr nie ma takiej liczby. Zawsze podawane jest tylko rozwiązanie o najmniejszej liczbie cyfr, nawet gdy jest ich więcej.
Program można by rozwinąć, aby akceptował formułę definiującą szerszą klasę takich zadań np. gdy jeszcze dodajemy jakąś stałą albo więcej cyfr przestawiamy. Wtedy mógłby służyć szybkiemu rozwiązywaniu takich zadań. Ale mnie on niepotrzebny, wolę pomęczyć mózg i rozwiązywać na piechotę, tylko może już nie tego typu zadań, a jakichś zupełnie innych.