2017-12-20 2 views
-5

私は戦闘ゲームを作っています。そのような2人のプレイヤーがあります。彼らは100馬力を持っており、彼らは戦っているときに0-100の攻撃値を選択します。彼らが価値を選んだら、この攻撃で成功する確率は100%です。たとえば、値60を選択すると、この攻撃で成功する確率は40%です。助けてください。私の悪い英語のために申し訳ありません。何かを作る確率を設定する方法

+0

「0」を選択した場合... – smac89

+0

私はあなたがそれらを選択してもらいたいとは思わないと思いますか?多分彼らのために選択したいですか?だから '無作為輸入。 random.random()* 100'を印刷します。より良い '輸入ランダム; print random.randint(1,100) ' – smac89

+0

あなたの質問は"ランダムモジュール "はどのように動作するのですか?それはあまりにも多くの1つの質問に答えるです。 – 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なので、十分に近いです。

関連する問題