私は、毎正午まで毎時確率を増やして、真夜中まで確率を下げて実行したいという機能を持っています。私は正午に中心を置く正規分布がそれを行うと想像することができます(関数を実行する確率は正午に100%ですが深夜には非常に低くなります)。しかし、Pythonコードに変換することはできません。時間ベースで確率的に実行中
例えば、コードが午前1時に実行されると、実行する確率は非常に低くなります。しかし、コードが正午に実行されると、実行可能性は100%になります。
currentHour = 12
if currentHour == 1:
print('probability = 0')
elif currentHour == 2:
print('probability = 0')
elif currentHour == 3:
print('probability = .1')
elif currentHour == 4:
print('probability = .2')
elif currentHour == 5:
print('probability = .3')
elif currentHour == 6:
print('probability = .4')
elif currentHour == 7:
print('probability = .5')
elif currentHour == 8:
print('probability = .6')
elif currentHour == 9:
print('probability = .7')
elif currentHour == 10:
print('probability = .8')
elif currentHour == 11:
print('probability = .9')
elif currentHour == 12:
print('probability = 1')
elif currentHour == 13:
print('probability = .9')
elif currentHour == 13:
print('probability = .8')
elif currentHour == 14:
print('probability = .7')
elif currentHour == 15:
print('probability = .6')
elif currentHour == 16:
print('probability = .5')
elif currentHour == 17:
print('probability = .4')
elif currentHour == 18:
print('probability = .3')
elif currentHour == 19:
print('probability = .2')
elif currentHour == 20:
print('probability = .1')
elif currentHour == 21:
print('probability = 0')
elif currentHour == 22:
print('probability = 0')
elif currentHour == 23:
print('probability = 0')
elif currentHour == 24:
print('probability = 0')
最低限、辞書を使用してください。 –
.1で上下するのではなく、Box-Mueller変換を使って正規分布にすることができます。 http://stackoverflow.com/a/75720/509840の回答を参照してください。または、Wikipediaのページ(変換可能なコードあり)をhttps://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform – rajah9
@ rajah9で見ることができます。この式はsin()を使用しています。与えた。 – Fusseldieb