2017-12-20 7 views
-5

나는 싸우는 게임을 만들고 있습니다. 거기에는 두 명의 선수가 있습니다. 그들은 100 HP를 가지고 있으며 그들이 싸울 때 0-100의 공격 수치를 선택합니다. 그들이 가치를 선택하면 공격에 성공할 확률이 100 %가됩니다. 예를 들어 60의 값을 선택하면이 공격에 성공할 확률은 40 %입니다. 도와 주실 수 있습니까? 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다.무언가를 만들 수있는 백분율을 설정하는 방법

+0

... – smac89

+0

나는 당신이 그들을 더 선택하고 싶지 않아 생각? 어쩌면 당신이 그들을 선택할 수 있을까요? 그래서'수입 무작위; random.random() * 100'을 인쇄하십시오. 더 나은'수입 무작위; random.randint (1, 100)' – smac89

+0

그럼, "random 모듈"은 어떻게 작동합니까? 한 가지 질문에 대답 하기엔 너무 어렵습니다. – AJFarmar

답변

2

0100 사이에서 임의의 숫자를 생성하고 삽입 된 숫자보다 큰지 확인하십시오. 당신이 50를 입력하면

예를 들어, 임의의 숫자가 50 % 감소, 이상 (또는 동일)입니다 50 %의 확률이있다. 10을 입력하면 90 %의 확률로 숫자가 커집니다.

0에서 100까지의 임의의 숫자를 생성하는 random.randrange(101)를 사용할 수 있습니다. 그렇다면 귀하의 가치에 대한 간단한 비교이며, 귀하가 필요로하는 모든 것이되어야합니다.

+0

0-100은 101의 범위입니다. –

0

일반적으로, 통계, 확률은 0과 1 사이의 수로서 표현되고, 그래서 0.6 60 %의 확률을 나타낸다. 그런 다음 성공 확률이 0.6 일 경우 0에서 1 사이의 임의의 부동 소수점 수를 선택하고 0.6보다 작거나 같은지 확인하여 성공 여부를 결정할 수 있습니다. 당신이 왼쪽에있는 0과 1-기회 사이에이 라인 - 당신의 임의의 숫자에 임의의 지점을 선택하려는 경우

|-----------------------------------|-----------------------| 
0         0.6      1 

:

직관적으로, 당신은 그것을 이런 식으로 볼 수 있습니다 의 0.6은 ... 0.6 (60 %)이다.

당신은 이것에 대한 random.uniform를 사용할 수 있습니다

import random 
success_rate_percentage = 60 
success = random.uniform(0, 1) <= success_rate_percentage/100.0 

이제 간단한 검사로이 경우 제대로 작동 :

>>> import random 
>>> success_count = 0 
>>> for _ in range(100000): 
...  if random.uniform(0, 1) <= 0.6 
...   success_count += 1 
... 
>>> success_count 
59954 

예상되는 결과는 약 0.6 * 100000 = 60000 성공과 실제입니다 결과는 59954이므로 충분히 가깝습니다.

가 '0'을 선택 그렇다면
관련 문제