Niech jest dodatnia składający się z n cyfry dziesiętne d 1 , d 2 , . . . , d n . Pozwolić będzie kolejną dodatnią liczbą całkowitą.
Dla celów tego wyzwania, nazywamy się naśladowcę z B , jeśli istnieje co najmniej jedną listę liczb całkowitych dodatnich p 1 , p 2 , . . . , p n takie, że:
i nazywane sąwzajemnyminaśladowcami,jeśli jest naśladowcą a jest naśladowcą .
Przykład
i są wzajemnymi naśladowcami, ponieważ:
i:
Wyzwanie
Biorąc pod uwagę dwie dodatnie liczby całkowite i , Twoim zadaniem jest wydrukowanie lub zwrócenie prawdziwej wartości, jeśli i są naśladowcami lub wartością fałszowania w przeciwnym razie.
Wyjaśnienia i zasady
- Możesz wziąć i w dowolnym rozsądnym, jednoznacznym formacie (np. Liczby całkowite, ciągi znaków, listy cyfr, ...)
- i mogą być równe. Jeśli liczba jest wzajemną naśladowcą, należy doA007532.
- Zamiast wartości prawda / fałsz, możesz zwrócić dwie wyraźne konsekwencje wartości.
- Dla i kod musi zostać wypełniony w mniej niż minutę . Jeśli przyjęcie wyższych wartości zajmuje zbyt dużo czasu, musi jednak być w stanie je rozwiązać teoretycznie.
- To jest golf golfowy .
Przypadki testowe
Truthy:
1 1
12 33
22 64
8 512
23 737
89 89
222 592
526 853
946 961
7 2401
24 4224
3263 9734
86 79424
68995 59227
32028 695345
Falsy:
1 2
3 27
9 24
24 42
33 715
33 732
222 542
935 994
17 2401
8245 4153
code-golf
decision-problem
integer
Arnauld
źródło
źródło
17 2401 -> false
. Prawie się o to potknąłem.Odpowiedzi:
Brachylog , 19 bajtów
Wypróbuj online!
Wyjścia
true.
lubfalse.
Wyjaśnienie
źródło
2401
zawierało element,0
który nie działał zgodnie ze sposobem, w jaki sprawdziłem, któryI
był ściśle pozytywny (ponieważ zamapowałem go zarównoI
na cyfrze, jak i naŁuska , 17 bajtów
Wypróbuj online! Kończy wszystkie przypadki testowe poniżej 1000 w około 11 sekund.
Wyjaśnienie
Dlaczego to działa?
źródło
d
takes the implicit argument. I clarified this in the explanation. 2. I added an argument for the program's correctness.Python 2, 102 bytes
Try it online!
źródło
05AB1E,
2622 bytesTakes the input as a list (i.e.
[526,853]
).Try it online or verify most test cases in the range
[1,999]
.Similar as my old answer below, except that the
[1,n]
list is hardcoded to[1,100]
, and it creates the cartesian list twice, once for each input-mapping, which is the main bottleneck in terms of performance.Old 26 bytes answer that's better for performance:
In this version I traded in some bytes to make the performance a lot better so it can run
[1,1000]
with ease. Test cases containing numbers in the range[1,9999]
are done in about a second on TIO. Test cases in the range[10000,99999]
in about 10-15 seconds on TIO. Above that it will timeout.Try it online or verify all test cases with numbers in the range
[1,9999]
.Explanation:
źródło
Haskell, 77 bytes
Try it online!
źródło
Perl 6,
87 8469 bytes-15 bytes thanks to nwellnhof!
Try it online!
Anonymous code block that returns True or False.
Explanation:
źródło
JavaScript (Node.js),
1169289868377 bytesTry it online!
Expect input as
(A)(B)
.źródło
J, 56 bytes
Try it online!
Yay, nested explicit definition!
How it works
źródło
Python 2,
149147143139132118108107106105 bytesTry it online!
-4 bytes, thanks to Vedant Kandoi
źródło
>0
can be removed.not a
:a<1
.b==0
:b<1
b<0
doesn't workJ, 68 bytes
I thought J would perform quite well here, but it ended up being tougher than I expected and would love any suggestions for further golfing...
Try it online!
NOTE: we subtract 3 chars from the TIO count there since
f=.
on the main function doesn't countungolfed
źródło