Załóżmy, że masz dwie sześciościenne kości. Rzuć parę 100 razy, obliczając sumę każdej pary. Wydrukuj liczbę wystąpień każdej sumy. Jeśli suma nigdy nie została wyrzucona, musisz podać zero lub jakiś sposób na określenie, że ta konkretna suma nigdy nie została wyrzucona.
Przykładowe dane wyjściowe: [3, 3, 9, 11, 15, 15, 11, 15, 7, 8, 3]
Liczba rzutów sumy jest reprezentowana w indeksie sum - 2
W tym przykładzie suma dwóch została zrolowana 3 razy ([2-2]), suma trzech 3 razy ([3-2]), suma czterech 9 razy ([4-2]), i tak na. Poszczególne rzuty kostką nie mają znaczenia, aby dojść do sumy (5 i 2 będą liczone jako ta sama suma co 6 i 1)
Wyjścia „brzydkie” są w porządku (mnóstwo zer końcowych, dodatkowe dane wyjściowe, dziwne sposoby przedstawiania danych itp.), O ile wyjaśnisz, w jaki sposób dane powinny być odczytywane.
źródło
0
na liście musi znajdować się symbol, czy można go pominąć?extra output
ale nadal nie możemy wygenerować nieskończonej listy liczb losowych i powiedzieć, że losowo pojawia się gdzieś tam, prawda? To standardowa iirc luka.Odpowiedzi:
Galaretka ,
1312 bajtówŁącze niladyczne. Format wyjściowy to lista list
[value, count]
.(Zerowe rzuty oznaczają, że taki wynik nie występuje na wyjściu - np. Wynik
[[6, 12], [7, 74], [8, 14]]
oznaczałby, że wyrzucono tylko sumy sześć, siedem i osiem).Wypróbuj online!
W jaki sposób?
źródło
Python 2 ,
847776 bajtów-7 bajtów dzięki @JonathanAllan
-1 bajtów dzięki @FelipeNardiBatista
Wypróbuj online!
Dane wyjściowe mają dwa zera wiodące
źródło
05AB1E ,
2119 bajtów-2 bajty dzięki @Emigna
Wypróbuj online!
źródło
TÝÌтF6Lã.RO¸ì}{γ€g<
oszczędza 2 bajty.Mathematica, 50 bajtów
Prosta implementacja. Jeśli jakakolwiek suma nie zostanie nigdy osiągnięta,
0
zostanie pominięta na liście.źródło
MATL , 17 bajtów
Dane wyjściowe to lista 11 liczb (niektóre z nich prawdopodobnie 0) oddzielonych spacjami, wskazująca liczbę razy dla każdej pary od 2 do 12.
Wypróbuj online!
Dla porównania teoretyczną średnią liczbę wyświetleń każdej pary można obliczyć jako
6:gtY+36/100*
.Jeśli liczba rolek zostanie zwiększona, uzyskane wartości zbliżą się do teoretycznych. Zobacz na przykład uzyskane i teoretyczne wartości przy 10000 rolkach.
źródło
CJam,
1820 bajtówWypróbuj online!
źródło
e`
zajmuje tylko dwa bajty.Perl 6 , 30 bajtów
(^6).pick
jest liczbą losową od zera do pięciu.xx 100
tworzy listę składającą się z 100 elementów z takich liczb.xx 2
tworzy dwie takie listy.[Z+]
zamyka te dwie listy z dodatkami, tworząc listę składającą się z 100 elementów z rzutami dwóch matryc. Na koniecbag
umieszcza tę listę w torbie, która jest kolekcją o wielu rozmiarach. Przykładowe dane wyjściowe REPL:Oznacza to, że 1, 9 i 0 wystąpiły cztery razy, cztery wystąpiły czternaście itd. Ponieważ „kostki” w tym kodzie dają liczbę od 0-5, dodaj po dwa do każdej z tych liczb, aby uzyskać rzut wyprodukowałyby standardowe kości 1-6.
źródło
R ,
4537 bajtów-7 bajtów dzięki Jarko Dubbledam
Zwraca obiekt tabeli elementów i liczbę każdego. Nie obejmuje żadnych wartości, które nie wystąpiły.
Wypróbuj online!
stara wersja:
sample(6,200,T)
próbkuje 200 razy z1:6
równomiernie z zamianą, następnie tworzy macierz z 2 rzędami, sumuje kolumny, następnie sortuje je w porządku rosnącym i oblicza długości przebiegów. Pomija wszelkie sumy kostek, które nie zostały osiągnięte.Zwraca
rle
obiekt, który drukuje domyślnie w następującym formacie:gdzie
lengths
są liczby ivalues
sumy kości.Link TIO
źródło
PHP, 53 bajtów
wypisuje tablicę asocjacyjną. klucz jest wynikiem dwóch kości, a wartość jest liczbą tych wyników
Wypróbuj online!
źródło
If a sum was never rolled, you must include a zero or some way to identify that that particular sum was never rolled.
JavaScript (ES6), 72 bajty
Patrząc na „brzydki” wynik jest dozwolony, poniższe wyświetli tablicę zawierającą liczbę rzutów każdego wyniku z 2-12, z dodatkowymi 89 elementami ustawionymi na 0.
źródło
SILOSY , 99 bajtów
Wypróbuj online!
Rzuca kośćmi i przechowuje je w pierwszych 11 miejscach stosu, a następnie tylko iteruje przez stos drukując każdy licznik. Jest to jedno z pierwszych zarejestrowanych zastosowań słowa kluczowego rand w połączeniu z operatorem przypisania.
Warto zauważyć, że można wprowadzić kilka modyfikacji, aby uzyskać histogram rolek.
Niestety należy go uruchomić z interpretera offline .
źródło
Eliksir,
157118 bajtówPróbowałem czegoś trudniejszego niż Jelly.
Wyjaśnienie:
y
będzie zmienną z sumą rzutów.Należy nazwać jak
p.(p,[0,0,0,0,0,0,0,0,0,0,0,0,0])
. Wyświetli ostrzeżenie, ale zwróci pożądaną tablicę z 13 elementami, pierwsze 2 należy zignorować.źródło
Java 8, 104 bajty
Lambda zwraca
int[]
częstotliwości. Przypisz doSupplier<int[]>
.Wypróbuj online
Niegolfowana lambda
źródło
q / kdb +,
312825 bajtówRozwiązanie:
Przykład:
Wyjaśnienie:
Rzuć kostką
100?6
, rzuć kostką ponownie i dodaj wektory razem. Następnie sprawdź, gdzie każdy wynik odpowiada zakresowi 0..10, a następnie zsumuj wszystkie wartości rzeczywiste na każdej liście:Uwagi:
„Gra w golfa” polega głównie na zamianie
q
słów kluczowych nak
ekwiwalenty, a mianowicieeach
itil
.źródło
QBIC , 45 bajtów
Wyjaśnienie:
źródło
APL, 14 bajtów
Prezentuje dane jako tabelę z lewą kolumną reprezentującą sumę, a prawą reprezentującą liczbę wystąpień.
Wyjaśniono
Poprzedni post:
APL,
3631 bajtów5 bajtów zapisanych dzięki @ Adám
Wyjaśnienie
Jak
11⍴⍉⌽f
działaźródło
(11⍴⍉⌽f)[⍋11⍴⍉f←,∘⍴⌸+/?100 2⍴6]
,∘⍴⌸+/?100 2⍴6
powinno wystarczyć, ponieważ zawiera listę występujących sum (wskazując w ten sposób, których nie ma) i ich częstotliwości (więc sortowanie nie jest potrzebne).> <> , 93 bajty
Wypróbuj online lub obejrzyj na placu zabaw dla ryb !
Brzydki format wyjściowy jest sekwencją liczb oddzielonych znakami nowej linii, gdzie n- ta liczba mówi, ile razy suma była n - jest brzydka, ponieważ drukuje wiecznie, dla wszystkich liczb całkowitych dodatnich n , chociaż większość wierszy będzie wynosić 0. ( Łącze TIO jest modyfikowane, aby zatrzymać po n = 12, kosztem 5 bajtów.)
Plac zabaw dla ryb jest dość powolny - wydrukowanie z maksymalną prędkością do około n = 12 zajmuje około trzy i pół minuty - możesz więc zmodyfikować go, aby rzucić 10 parami kości zamiast 100, zmieniając
aa*
w piątej linii naa
(to jest,a
po których następują dwie spacje).Losowe rzuty kostką są wykonywane przez ten bit:
The
x
s zmienić kierunek ryby losowo. Zakładając, że jest to realizowane z jednakowymi prawdopodobieństwami, jasne jest, że wynik rzutu jest równomiernym rozkładem przez symetrię.Gdy ryba wyrzuci 100 par kostek, liczy ile razy suma była n tym bitem (rozpakowana dla jasności i zaczynająca się w lewym górnym rogu):
Trzymamy n na początku stosu i używamy rejestru do zliczania liczby pojawień się n .
źródło
JavaScript
8575 znakówDzięki, Kudłaty!
Historia
85
źródło
a=[];for(i=100;i--;)a[o=(f=_=>Math.random()*6|0)()+f()]=(a[o]|0)+1;alert(a)
. (Uwaga: w tym przypadku IIFE nie oszczędza ani nie kosztuje żadnych bajtów, ale są chwile, w których można zaoszczędzić bajt lub 2, więc dobrze jest mieć go w swojej torbie golfowej.)|0
jest golfowe rozwiązanie „Math.floor ()”, a także „przekonwertować niezdefiniowane na 0”.Perl 5 , 64 bajtów
Wypróbuj online!
Format wyjściowy:
<sum> <# rolls>
W przypadku sum z zerowymi rolkami kolumna rolek jest pusta.
źródło
PHP, 65 bajtów
drukuje wiodące,
0_
a następnie wystąpienia od 2 do 12, a następnie każdy znak podkreślenia.Uruchom
-nr
lub wypróbuj online .źródło
K (oK) ,
2422 bajtówRozwiązanie:
Wypróbuj online!
Wyjaśnienie:
k
„port” mojegoq
rozwiązania. Ocena odbywa się od prawej do lewej, stąd nawiasy wokół til (!
)Edycje:
źródło
Pyth, 21 bajtów
Wysyła każdy krok w tworzeniu zwojów, a następnie wysyła częstotliwość każdej sumy 0–10 w osobnej linii.
źródło
Java (OpenJDK 8) , 95 bajtów
Wypróbuj online!
Objaśnienia
źródło