Zrób zagubiony RNG

17

Lost to język programowania 2-D, w którym pozycja początkowa i kierunek ip są całkowicie losowe.

To bardzo utrudnia tworzenie deterministycznych programów Lost. Jednak dzisiaj nie piszemy deterministycznego programu, piszemy RNG.

Napisz utracony program, który nie pobiera danych wejściowych i wysyła jedną cyfrę (0,1,2,3,4,5,6,7,8 lub 9), przy czym wszystkie cyfry mają jednakowe prawdopodobieństwo wyprowadzenia. Ponieważ początkowa lokalizacja i kierunek Lost jest jedynym źródłem losowości, jedynym sposobem na zrobienie tego jest umieszczenie w każdej lokalizacji wyjściowej innej liczby od 0 do 9 z równą liczbą wypisującą każdą cyfrę.

Możesz obliczyć prawdopodobieństwo każdej cyfry, używając -Qflagi i przesyłając ją do tego skryptu Pythona

import sys
a=sys.stdin.read().split()[:-1]
for x in range(10):print x,':',a.count(`x`)
print[x for x in a if x not in list("1234567890")]

Wypróbuj online!

To jest więc odpowiedzi będą liczone w bajtach, przy czym mniej bajtów będzie lepszych.


Przegląd Lost

Lost to zawijający się w sobie język 2D IO, który bierze wiele z formy Kleina. Oto krótki ściągawka tego, co robią utracone polecenia

  • \, /, |Lusterka OD

  • <, ^, >, vPunkty ip w kierunku

  • [Odzwierciedla ip, jeśli porusza się na wschód; staje się, ]jeśli ip porusza się w poziomie

  • ]Odzwierciedla ip, jeśli porusza się na zachód; staje się, [jeśli ip porusza się w poziomie

  • ! Pomija następną operację

  • ? Wyskakuje z góry stosu i skacze, jeśli nie zero

  • : Duplikuje górę stosu

  • $ Zamienia dwa górne elementy stosu

  • ( Wyskakuje ze stosu i przesuwa się do zakresu

  • ) Wyskakuje z zakresu i przesuwa się na stos

  • 0- 9przesuwa n na górę stosu

  • "Zaczyna i kończy literał łańcuchowy. Podczas ciągu literalne polecenia nie są uruchamiane, a zamiast tego ich wartości znaków są wypychane na stos.

  • + Dodaje dwie najlepsze liczby

  • * Mnoży dwie najlepsze liczby

  • - Mnoży górę przez -1

  • % Wyłącza bezpieczeństwo

  • # Włącza bezpieczeństwo

  • @ Kończy wykonywanie, jeśli bezpieczeństwo jest wyłączone (zaczyna się)

Post Rock Garf Hunter
źródło
Co się stanie, jeśli spróbujesz zamienić dwie wartości ze stosu, ale jest tylko jedna wartość lub spróbujesz wyskoczyć z pustego stosu?
pppery
@ppperry Stos jest wypełniony niejawnymi zerami.
Post Rock Garf Hunter,
1
Zbyt mało informacji o języku. Czy to się zawija? Co oznacza „bezpieczeństwo”? Opis bransoletki wprowadza w błąd? Jak używany jest zakres?
Dead Possum,
@DeadPossum Starałem się zachować zwięzłość. To się zawija. Bezpieczeństwo zostało już wyjaśnione w pytaniu. Nie wiem, co masz na myśli w nawiasach. []działają jak drzwi, <>wskazują w kierunkach i ()przechowują i wycofują się z zakresu. Zakres służy do przechowywania wartości.
Post Rock Garf Hunter,
@WheatWizard Więc bezpieczeństwo jest warunkiem, @czy ma inne przypadki użycia? O nawiasach, nie rozumiem tej części: becomes ] if the ip is moving horizontally. Poruszanie się na wschód jest również horyzontalne, prawda?
Dead Possum,

Odpowiedzi:

12

81 101 bajtów

To może być gra w golfa dalej ...

>%(0@>%(1@>%(2@>%(3@>%(4@>%(5@>%(6@>%(7@>%(8@>%(9@
^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<^<<<<

Wypróbuj online!

pppery
źródło
1
Ciekawe podejście! Nie myślałem o tym
Post Rock Garf Hunter
1
101 bajtów, które naprawiają podwójny wydruk. Właśnie dodałem trzask stosu przed wyłączeniem bezpieczeństwa, więc jeśli uderzysz numer na początku, może on trzasnąć, popchnąć go ponownie, a następnie umrzeć. Nie wiem jednak, czy jest to technicznie jednolity losowy przypadek ...
Arnold Palmer,
1
Dosłownie wpadłem na ten sam pomysł w tym samym czasie ...
pppery
1
Twoje wyniki nie są jednolite. 0ma szansę na wydrukowanie 7/101 (dowolny z <lub ^pod jego blokiem >oraz %symbol i ), 1- 8ma szansę na 10/101 i 9ma szansę na 11/101. Wtedy wygląda na to, że może istnieć szansa, że ​​będzie trwać wiecznie.
Arnold Palmer,
1
Musi się zawinąć, w przeciwnym razie zakończy się, gdy zacznie się w górnej linii w górę.
pppery
9

Utracone , 54 bajty

>%(0@>%(1@
@>%(2@>%(3
5@>%(4@>%(
(7@>%(6@>%
%(9@>%(8@>

Wypróbuj online!

Po prostu skopiowałem odpowiedź pppery i zrób kilka przypadkowych rzeczy. Nic nie wiem o Lost language. I nawet nie wiem, co się dzieje z powyższymi kodami. Czy to działa? (Nie wiem)

tsh
źródło
Twój kod generuje o połowę mniej danych wyjściowych niż ppperry, chyba dlatego, że -Qdziała? Wyjście wydaje się normalnie rozłożone. Byłoby miło mieć pełną specyfikację języka powiązanego w pytaniu.
Aaron,
@Aaron Powinienem był wyjaśnić, jak to -Qdziała. Ponieważ język jest przypadkowy, weryfikacja odbywa się poprzez uruchomienie wszystkich możliwości. -Qrobi to i drukuje wszystkie wyniki. Im krótszy program, tym mniej możliwości i mniej wyników -Q.
Post Rock Garf Hunter