W standardowych kościach (kostkach) liczby są ułożone w taki sposób, że przeciwległe twarze dodają siedem. Napisz najkrótszy możliwy program w preferowanym języku, który generuje losowy rzut, po którym następuje 9 losowych napiwków. Przechylenie to ćwierć obrotu kości, np. Jeśli kostka jest skierowana w stronę 5, wszystkie możliwe przechylenia to 1,3,4 i 6.
Przykład pożądanej wydajności:
1532131356
code-golf
random
repeated-transformation
steenslag
źródło
źródło
JavaScript (71 znaków)
Być może trzeba wymienić
print
zalert
lub coś innego, w zależności od środowiska JavaScript.źródło
GolfScript, 28
źródło
Grzmotnąć
przykładowy kod: http://ideone.com/CCfro
źródło
((var=expression))
jest bardzo przyjemne - myślałem, że najkrótszą drogą byłovar=$((expression))
Ale dlaczego używasz tego tylko raz i marnujesz mnóstwo znaków na wyrażenie na backty?R
5652źródło
Bash z tylko jedną pętlą:
100 99 9896http://ideone.com/XrZO7
Kluczową ideą jest to, że aby wybrać losową liczbę w [1, x], która nie jest równa y, możesz wybrać losową liczbę w [1, x-1], a następnie zwiększyć ją, jeśli jest> = y. W tym przypadku chcemy losowej liczby w [1,6], która nie jest równa f lub 7-f. Musimy wykonać dwa testy w kolejności min (f, 7-f), max (f, 7-f).
Zakładając, że początkowo puste środowisko może zapisać 2 znaki, nie inicjując i i zmieniając warunek pętli na
i++<10
źródło
Bash:
97 94 92 90 8987Mocno grał w golfa na podstawie odpowiedzi Amana ZeeK Vermy:
http://ideone.com/QiuTx
NB prawdopodobnie można go zmniejszyć o 5 znaków, zmieniając pierwszą linię na,
for((;i++<10;))
ale to czyni założenia, które nie zawsze są poprawne. To działa OK w ideone ale ktoś go uruchomić z powłoki mogłoi
lubf
eksportowane do czegoś niezerowe.źródło
man bash
, polecam. Kiedyś przeczytałem ją od deski do deski, a samo niejasne wyobrażenie o tym, co jest możliwe i warte sprawdzenia, dobrze mi służyło.Windows PowerShell, 45
Właściwie dość banalne. Generuję listę możliwych rzutów kostkami,
1..6
a następnie wybieram tylko te, które nie są równe siedmiu minus ostatni rzut, a następnie tylko te, które nie są równe ostatniemu rzutowi. Z pozostałej listy wybieram następnie losowy element i przypisuję go do$d
. Ponieważ$d
jest początkowo traktowany,0
gdy rzuca normalną kostką za pierwszym razem.Skrypt testowy:
Historia:
źródło
The term 'random' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.
Get-Random
cmdlet nie istniało w wersji 1.jot
Powinno to działać, ale niestety losowy generator J utknął po trzeciej iteracji:
6 4 5 4 5 4 5 4 5 4
źródło
(?4)
zwykle jest zrolowany raz i traktowany jako stała dla kolejnych iteracji, jeśli nie jesteś ostrożny. Obejrzałem go, używając(?@4:)
konstrukcji podobnej do tej.Rubin
66 znaków
źródło
J, 30 znaków
6 2 3 5 4 2 4 1 3 6
Objaśnienia (czytane od prawej do lewej):
?6
zwraca losową liczbę od 0 do 5^:(<10)
stosuje funkcję 9 razy, kumulując wyniki po drodze. Funkcja to:?@4:{(i.6)-.],5&-
] , 5&-
zwraca tablicę liczby wejściowej i jej uzupełnienie do 5 (obecnie obsługujemy liczby oparte na 0, więc suma przeciwnych ścian wynosi 5)(i. 6) -.
usuwa je z pełnego zestawu liczb całkowitych od 0 do 5. Po jednej operacji przechylania od pozycji wejściowej pozostały nam wszystkie prawidłowe pozycje.?@4: {
wybiera jeden z nich losowo.>:
zwiększa całą sekwencję, aby sprowadzić liczby z powrotem do przedziału od 1 do 6.źródło
GS2, 16 bajtów
Oto jak to działa
źródło
QBasic (71 znaków)
Dwie nowe linie są konieczne i zawarte w znaku liczą się jako jeden znak każdy.
źródło
TI-BASIC,
3834Nudne rozwiązanie, ale jest krótsze niż poprzednia wersja. Korzystam z faktu, że na nowym kalkulatorze
Ans
jest inicjowany do zera.źródło
Java 8, 130 bajtów
Wypróbuj tutaj.
Jako pełny program z pełną główną metodą miałby zamiast tego 178 bajtów :
Wypróbuj tutaj.
Pół-port odpowiedzi Bash @AmanZeeKVerma .
Wyjaśnienie:
źródło
MATLAB 58 bajtów
źródło
> <> , 71 bajtów
Cieszę się, że mogłem zaprezentować
x
losowość wskaźnika kodu > <>, ponieważ nie pamiętam, aby go tutaj widziałem.Możesz go wypróbować w tym internetowym tłumaczu (wklej kod, prześlij, uruchom).
źródło
R , 67 bajtów
Wypróbuj online!
Istnieje odpowiedź golfisty R. Jednak myślę, że jest to inne podejście niż dotychczasowe odpowiedzi.
źródło
05AB1E , 23 bajty
Zdecydowanie można grać w golfa, ale obecnie go nie widzę ..
Wypróbuj online.
Wyjaśnienie:
źródło