我想在Python 3.5.2中創建一個隨機選擇一個獲勝者的程序,但是參與者可以有更高的運氣,而其他人則基於他們的支付。我怎樣才能做到這一點?挑選一個隨機數字,運氣好
編輯:我如何製作允許人們支付費用並輸入其美元數額的代碼,就像投注/抽獎類型的事物一樣,可能會有許多人加入,因此需要高效。
預先感謝所有答案
Sketch of product for those more interested
我相信這個問題不會被要求之前...
我想在Python 3.5.2中創建一個隨機選擇一個獲勝者的程序,但是參與者可以有更高的運氣,而其他人則基於他們的支付。我怎樣才能做到這一點?挑選一個隨機數字,運氣好
編輯:我如何製作允許人們支付費用並輸入其美元數額的代碼,就像投注/抽獎類型的事物一樣,可能會有許多人加入,因此需要高效。
預先感謝所有答案
Sketch of product for those more interested
我相信這個問題不會被要求之前...
只需添加同一人不止一次?
說:湯姆投入2美元,馬特也是,但斯科特只投了1美元。
import random
participants = ['Tom', 'Tom', 'Matt', 'Matt', 'Scott']
print(random.choice(participants))
嗯,那很簡單,非常感謝答案。我看到在解決問題時我有很多東西需要學習; –
如果湯姆需要以1/pi的概率獲勝,該怎麼辦? –
這是一個不錯的開始,但是如果有大量的Toms和Matts以及Scotts等,這並不會擴展。您可以研究如何讓您的解決方案更加節省空間。使一個非常有趣的問題 – themistoklik
真的是沒有任何的問題在這裏,但如果你正在尋找一些指導,你可以做到這一點像LMGN說:
你可以有一個集合在每$ 1補充說,將增加一個條目,所以增加10美元的人會得到10個條目。所以如果你有3個玩家,玩家A增加1美元,玩家B增加3美元,玩家C增加10美元,那麼集合(像數組,列表或類似的東西)看起來像這樣:{A,B ,B,B,C,C,C,C,C,C,C,C,C,C},然後在數組中選擇一個隨機插槽。有幾種遺傳算法使用這種方法,並且它運作良好,而不是爲每個玩家增加權重。
請確保您注意確保您的隨機數是基於進入「池」的條目數量是動態的,這樣您可以在每個遊戲池中擁有不同的數量。
謝謝你的回答! –
你可以用'random.choice'模仿現實生活中的抽獎,其中一些參賽者比其他人擁有更多的「門票」(即列表中的元素) –
是的,只需按照正確的比例劃分球員之間的RNG輸出範圍。 – Useless