gammavariateから数値を描きたいが、上限を設定したい。 これはなぜ機能しないのですか?ランダムなガンマ値の結果を上限に切り捨てる
import random
[int(random.gammavariate(3, 3)) if x < 21 else 20 for x in range(1)]
Out[59]: [22]
ありがとう。
gammavariateから数値を描きたいが、上限を設定したい。 これはなぜ機能しないのですか?ランダムなガンマ値の結果を上限に切り捨てる
import random
[int(random.gammavariate(3, 3)) if x < 21 else 20 for x in range(1)]
Out[59]: [22]
ありがとう。
なぜ物を作るのですかcomplicated?
x
は、リストの理解度では常に0
です。
このようにそれを試してください:あなたが特定の範囲内gamma distribution [0-20]以下のランダムな値をクランプしたい私が正しく理解している場合
x = int(random.gammavariate(3,3))
[x if x < 21 else 20]
、あなたはこのようにそれを行うことができます:
あなたの例ではimport random
def clamp(x, min_value, max_value):
return max(min(max_value, x), min_value)
min_value, max_value = 0, 20
print([clamp(int(random.gammavariate(3, 3)), min_value, max_value)
for v in range(1)])
、あなたはXの代わりにあなたのランダムなガンマ値のインデックスを使用していた、私はあなたが
何をしたいことがありませんと仮定していますが、期待している出力は何ですか? – BPL
私はPythonのエキスパートではありませんが、x <21を評価するとき、xは明確に定義されていますか? – Bathsheba
数値が20以下の場合 –