Friedman ilość jest dodatnią liczbą całkowitą, która jest równa nietrywialną ekspresji, który wykorzystuje własne cyfry w połączeniu z operacjami +, -, * / ^ w nawias i konkatenacji.
Liczba Nicea Friedmana jest dodatnią liczbą całkowitą równą nietrywialnemu wyrażeniu, która używa własnych cyfr w połączeniu z tymi samymi operacjami, z cyframi w ich oryginalnej kolejności.
Bardzo ładny numer Friedmana (VNFN), który tutaj wymyślam, to ładny numer Friedmana, który można zapisać bez mniej ładnych (moim zdaniem) części takiego wyrażenia. Nawiasy, konkatenacja i jednoargumentacja są niedozwolone.
W przypadku tego wyzwania istnieją trzy możliwe sposoby napisania wyrażenia bez nawiasów.
Prefiks: Jest to równoważne lewostronnemu skojarzeniu. Ten typ wyrażenia jest zapisywany wszystkimi operatorami po lewej stronie cyfr. Każdy operator stosuje się do następujących dwóch wyrażeń. Na przykład:
*+*1234 = *(+(*(1,2),3),4) = (((1*2)+3)*4) = 20
VNFN, który można zapisać w ten sposób, to 343:
^+343 = ^(+(3,4),3) = ((3+4)^3) = 343
Postfiks: Jest to równoważne z prawym skojarzeniem. To jest tak jak zapis przedrostka, z tą różnicą, że operacja przebiega po prawej stronie cyfr. Każdy operator stosuje się do dwóch poprzednich wyrażeń. Na przykład:
1234*+* = (1,(2,(3,4)*)+)* = (1*(2+(3*4))) = 14
VNFN, który można zapisać w ten sposób, to 15655:
15655^+** = (1,(5,(6,(5,5)^)+)*)* = (1*(5*(6+(5^5)))) = 15655
Infix: Notacja Infix używa standardowej kolejności operacji dla pięciu operacji. Na potrzeby wyzwania kolejność operacji zostanie zdefiniowana w następujący sposób: ^Najpierw nawiasuj , a następnie skojarz . Następnie nawiasuj *i /jednocześnie odejdź asocjacyjnie. Wreszcie nawiasuj +i -jednocześnie odejdź asocjacyjnie.
1-2-3 = (1-2)-3 = -4
2/3*2 = (2/3)*2 = 4/3
2^2^3 = 2^(2^3) = 256
1^2*3+4 = (1^2)*3+4 = 7
VNFN, który można zapisać w ten sposób, to 11664:
1*1*6^6/4 = (((1*1)*(6^6))/4) = 11664
Wyzwanie: Biorąc pod uwagę dodatnią liczbę całkowitą, jeśli można ją wyrazić jako nietrywialne wyrażenie własnych cyfr w notacji przedrostka, infiksu lub postfiksu, wypisz to wyrażenie. Jeśli nie, nie wysyłaj nic.
Wyjaśnienia: Jeśli możliwe są wielokrotne reprezentacje, możesz wyprowadzić dowolny niepusty ich podzbiór. Na przykład 736 to VNFN:
+^736 = 736
7+3^6 = 736
+^736, 7+3^6Albo w obu przypadkach wszystkie są dopuszczalne wyjścia.
Wyrażenie „trywialne” oznacza takie, które nie korzysta z żadnych operatorów. Dotyczy to tylko cyfr jednocyfrowych i oznacza, że cyfry jednocyfrowe nie mogą być numerami VNFN. Jest to odziedziczone po definicji liczby Friedmana.
Odpowiedzi powinny zacząć się w ciągu kilku sekund lub minut na danych wejściowych poniżej miliona.
IO: Standardowe zasady IO. Pełny program, funkcja, czasownik lub podobne. STDIN, wiersz poleceń, argument funkcji lub podobny. Do wyprowadzania „Nic”, pusty ciąg, pusta linia nulllub temu podobne, i pusta kolekcja są w porządku. Dane wyjściowe mogą być ciągiem ograniczonym znakiem, który nie może być w reprezentacji, lub może być zbiorem ciągów.
Przykłady:
127
None
343
^+343
736
736^+
7+3^6
2502
None
15655
15655^+**
11664
1*1*6^6/4
1^1*6^6/4
5
None
Punktacja: To jest golf golfowy. Wygrywa najmniej bajtów.
Ponadto, jeśli znajdziesz, podaj w odpowiedzi nowy numer Very Nice Friedman.
Parentheses, concatenation and unary negation are disallowed.
*(+(*(1,2),3,4)brakuje jednego bliskiego miąższu, po,3