Razem z przyjaciółmi graliśmy w DSA (głównie niemieckie RPG typu tabletop, bardzo podobne do D&D). Zastanawiałem się, jaka jest szansa na podanie rzutu, więc będziesz musiał napisać kod, aby go obliczyć.
Twoja postać jest definiowana przez statystyki (od 8 do 14) i wartości talentów (TV) (od 0 do 21). Na razie użyjemy wspinaczki jako przykładu.
Testy talentów
Talent (wspinaczka) wygląda następująco: (Odwaga-Zręczność-Siła) TV: 7. Aby przetestować postać na talencie, rzucasz tymi statystykami za pomocą 20-stronnych kości i starasz się zejść poniżej lub równej wartości statystyki, jeśli robisz to dobrze. Jeśli nie, możesz użyć punktów telewizyjnych, aby zmniejszyć rzut przy stosunku 1: 1.
Przykład
Łowca z odwagą 12, zręcznością 13 i siłą 14 próbuje wspiąć się na drzewo, jego telewizor to 7.
Rzuca 3, wartość jest mniejsza niż 12, więc zdał ten rzut.
Następnie rzuca 17, 17 to 4 więcej niż 13, więc 4 telewizory się przyzwyczają z 3 pozostałymi.
Za ostatni rzut otrzymujesz 14, miejsce za zaliczone.
Wszystkie bułki są przekazywane i myśliwemu udało się wspiąć na drzewo, pozostały 3 telewizory.
Wejście
4 wartości w dowolnym wybranym przez ciebie formacie, wzięte ze standardowego wejścia twojego języka. Jednak musi być w tej kolejności.
Np. 12 13 14 7
Lub 12,13,14,7
jako tablica {12,13,14,7} lub mieszana[12, 14, 8], 3
Wynik
Szansa na to, jak często mijają rzuty.
Np. (Dla powyższych wartości)0.803
12,14,8,3 = 0.322
11,11,12,11 = 0.840
Dodatkowa korzyść: Ponowne sformatowanie nie jest tutaj problemem, wypisz je, jak chcesz, ale w następującej kolejności:
failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7
i tak dalej, dopóki nie pozostanie telewizor.
12,13,14,7 = 0.197/0.075/0.089/0.084/0.078/0.073/0.068/0.063/0.273
12,14,8,3 = 0.678/0.056/0.051/0.047/0.168
Wyzwanie, zasady i bonus
Dowiesz się, biorąc pod uwagę wkład, szansę przekazania rzutów z dokładnością + - 0,5%.
-20%, jeśli twój program wyświetla również szanse na przejście z
n
TV (patrz wyjście).To jest golf-golf, więc wygrywa najkrótszy kod w bajtach!
[12, 14, 8], 3
?Odpowiedzi:
Pyth -
212019 bajtówZaoszczędzono 1 bajt dzięki @ThomasKwa
Pakiet testowy .
źródło
stat,stat,stat,TV
ja tylko podałem to teraz. Jeśli jednak możesz to łatwo zmodyfikować, byłoby miło. Czy możesz podać wyjaśnienie?Dyalog APL, 28 bajtów
To podejście jest takie samo jak @ Maltysen's. Nie możemy być pewni 0,5% dokładności, jeśli wylosujemy kilka tysięcy losowych rzutów kostkami, więc zamiast tego bierzemy średnią z wszystkich możliwych rzutów. To bierze trzy statystyki za lewy argument, a wartość talentu po prawej.
Wypróbuj tutaj !
źródło