Zainspirowany tą odpowiedzią (moje podkreślenie):
Zagramy w grę. Załóżmy, że masz jakąś liczbę x . Zaczynasz od x, a następnie możesz dodawać, odejmować, mnożyć lub dzielić przez dowolną liczbę całkowitą, z wyjątkiem zera. Możesz także pomnożyć przez x . Możesz robić te rzeczy tyle razy, ile chcesz. Jeśli suma wyniesie zero, wygrywasz.
Załóżmy na przykład, że x wynosi 2/3. Pomnóż przez 3, a następnie odejmij 2. Wynik wynosi zero. Wygrałeś!
Załóżmy, że x wynosi 7 ^ (1/3). Pomnóż przez x , następnie przez x ponownie, a następnie odejmij 7. Wygrywasz!
Załóżmy, że x wynosi √2 + √3. Tutaj nie jest łatwo zobaczyć, jak wygrać. Ale okazuje się, że jeśli pomnożysz przez x , odejmiesz 10, pomnożysz przez x dwa razy i dodasz 1, wtedy wygrasz. (To nie powinno być oczywiste; możesz spróbować za pomocą kalkulatora).
Ale jeśli zaczniesz od x = π, nie możesz wygrać. Nie ma możliwości przejścia od π do 0, jeśli dodasz, odejmiesz, pomnożysz lub podzielisz przez liczby całkowite lub pomnożysz przez π, bez względu na to, ile kroków wykonasz. (To również nie powinno być oczywiste. To bardzo trudna sprawa!)
Liczby takie jak √2 + √3, z których możesz wygrać, nazywane są algebraicznymi . Liczby takie jak π, z którymi nie można wygrać, nazywane są transcendentalnymi.
Dlaczego to jest interesujące? Każda liczba algebraiczna jest powiązana arytmetycznie z liczbami całkowitymi, a zwycięskie ruchy w grze pokazują, jak to zrobić. Ścieżka do zera może być długa i skomplikowana, ale każdy krok jest prosty i istnieje ścieżka. Ale liczby transcendentalne są zasadniczo różne: nie są one arytmetycznie powiązane z liczbami całkowitymi za pomocą prostych kroków.
Zasadniczo wykorzystasz kroki użyte w powyższym pytaniu, aby „wygrać” grę dla danego wkładu.
Biorąc pod uwagę rzeczywistą stałą algebraiczną x, przekonwertuj liczbę na zero, używając następujących dozwolonych operacji:
- Dodaj lub odejmij liczbę całkowitą.
- Pomnóż lub podziel przez niezerową liczbę całkowitą.
- Pomnóż przez pierwotną stałą
x.
Dane wejściowe to ciąg znaków, który może zawierać liczby całkowite, dodawanie, odejmowanie, mnożenie, dzielenie, potęgowanie (twój wybór **lub ^potęgi są używane do reprezentowania pierwiastków) i nawiasy. Spacje na wejściu są opcjonalne, ale nie na wyjściu. Powinieneś wypisać kroki niezbędne do uzyskania wyniku równego zero, więc pomnożenie przez 7jeden krok dałoby wynik jako*7 . Końcowe spacje i / lub nowa linia są dozwolone.
Przykłady
0 -> +0 (or any other valid, or empty)
5/7 + 42 -> -42 *7 -5 (or shorter: *7 -299)
2^(1/3) -> *x *x -2
5*(3**(1/4)) -> *x *x *x -1875
2^(1/2)+3^(1/2) -> *x -10 *x *x +1
Najkrótszy kod wygrywa.
x^4-10*x^2+1. Zobacz WolframAlpha

0muszą być wyniki? Biorąc pod uwagę błędy zaokrąglania i precyzję