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ę)


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!


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)


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.