2016-11-29 33 views
-3

我想在Python 3.5.2中創建一個隨機選擇一個獲勝者的程序,但是參與者可以有更高的運氣,而其他人則基於他們的支付。我怎樣才能做到這一點?挑選一個隨機數字,運氣好

編輯:我如何製作允許人們支付費用並輸入其美元數額的代碼,就像投注/抽獎類型的事物一樣,可能會有許多人加入,因此需要高效。

預先感謝所有答案

Sketch of product for those more interested

我相信這個問題不會被要求之前...

+0

你可以用'random.choice'模仿現實生活中的抽獎,其中一些參賽者比其他人擁有更多的「門票」(即列表中的元素) –

+0

是的,只需按照正確的比例劃分球員之間的RNG輸出範圍。 – Useless

回答

0

只需添加同一人不止一次?

說:湯姆投入2美元,馬特也是,但斯科特只投了1美元。

import random 

participants = ['Tom', 'Tom', 'Matt', 'Matt', 'Scott'] 
print(random.choice(participants)) 
+0

嗯,那很簡單,非常感謝答案。我看到在解決問題時我有很多東西需要學習; –

+0

如果湯姆需要以1/pi的概率獲勝,該怎麼辦? –

+0

這是一個不錯的開始,但是如果有大量的Toms和Matts以及Scotts等,這並不會擴展。您可以研究如何讓您的解決方案更加節省空間。使一個非常有趣的問題 – themistoklik

0

真的是沒有任何的問題在這裏,但如果你正在尋找一些指導,你可以做到這一點像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},然後在數組中選擇一個隨機插槽。有幾種遺傳算法使用這種方法,並且它運作良好,而不是爲每個玩家增加權重。

請確保您注意確保您的隨機數是基於進入「池」的條目數量是動態的,這樣您可以在每個遊戲池中擁有不同的數量。

+0

謝謝你的回答! –