일부 친구와 저는 DSA (주로 D & D와 비슷한 독일 탁상 RPG)를 플레이했습니다. 롤을 전달할 가능성이 무엇인지 궁금해서 계산하기 위해 코드를 작성해야합니다.
당신의 캐릭터는 능력치 (8 ~ 14)와 (TV) 특성 (0 ~ 21)으로 정의됩니다. 지금은 등반을 예로 들어 보겠습니다.
인재 테스트
재능 (등반)은 다음과 같습니다 : (Courage-Dexterity-Strength) TV : 7. 재능에서 캐릭터를 테스트하려면 20면 주사위로이 능력치에 굴려서 그 능력치보다 낮거나 같게하십시오. 당신은 잘합니다. 그렇지 않으면 TV 포인트를 사용하여 1 : 1의 비율로 롤을 줄일 수 있습니다.
예
용기 12, 민첩 13 및 힘 14를 가진 사냥꾼은 나무를 등반하려고합니다. 그의 TV는 7입니다.
그는 3을 굴리고 값이 12보다 작아서 그 롤을 통과했습니다.
그런 다음 그는 17을 굴리고 17은 13보다 4가 더 많으므로 4 TV는 3 남았습니다.
마지막 롤의 경우 14를 얻습니다.
모든 롤이 통과되고 사냥꾼이 나무를 올라갈 수 있었고 TV 3 대가 남았습니다.
입력
언어의 표준 입력에서 가져온 모든 형식의 4 가지 값. 그래도 순서대로 있어야합니다.
예 12 13 14 7
또는 12,13,14,7
배열 {12,13,14,7} 또는 혼합형[12, 14, 8], 3
산출
롤이 얼마나 자주 통과 할 가능성.
예 (위의 값)0.803
12,14,8,3 = 0.322
11,11,12,11 = 0.840
보너스 : 다시 포맷팅은 여기서 문제가되지 않지만 원하는대로 출력하지만 다음 순서로 출력하십시오.
failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7
TV가 남지 않을 때까지 계속합니다.
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
도전과 규칙과 보너스
입력에 +/- 0.5 % 정확도로 롤을 전달할 수있는 기회가 주어 졌는지 확인해야합니다.
프로그램이
n
TV 를 통과 할 기회를 출력하면 -20 %입니다 (출력 참조).이것은 코드 골프바이트 단위의 가장 짧은 코드가 승리합니다!
[12, 14, 8], 3
?