Python中的随机猜测
我有40张卡片。10黄色。10红色。10个蓝色和10个绿色。我需要随机挑选25张卡片,然后给500人。每个人都需要为25张卡片中的每一张猜出正确的颜色 这就是我到目前为止所做的:Python中的随机猜测,python,Python,我有40张卡片。10黄色。10红色。10个蓝色和10个绿色。我需要随机挑选25张卡片,然后给500人。每个人都需要为25张卡片中的每一张猜出正确的颜色 这就是我到目前为止所做的: import random nSuits = 4 # yellow/red/blue/green nCards = 25 # Number of random cards nPlayers = 500 def Random_guess(): r
import random
nSuits = 4 # yellow/red/blue/green
nCards = 25 # Number of random cards
nPlayers = 500
def Random_guess():
randomCards = [random.randrange(nSuits) for i in range(nCards)]
randomGuesses = [random.randrange(nSuits) for i in range (nPlayers)]
根据外壳的不同,randomCards
可以很好地工作,但是我找不到一种方法将随机卡归因于每个玩家以及他们对4种颜色的猜测。
有什么建议吗?如果我理解正确,每位玩家需要25次猜测(每张牌一次): 这将生成一个包含Nlayer嵌套列表的列表,每个列表都包含NCARD“猜测” 是第i个玩家的第j个猜测。创建一个游戏是让同一件事“拥有”(或“做”)同一件事的好方法 一个常见的类比是工厂:它是一个生成对象模板的对象工厂,然后可以通过属性、角色、职责等进行自定义 首先,初始化类:
import random
nSuits = 4 # yellow/red/blue/green
nMaxSuits = 10 # only ten of each yellow, red, blue, green
nCards = 25 # Number of random cards
nPlayers = 500
deck = [suit for suit in range(nMaxSuits) for suit in range(nSuits)]
class CardPerson(object):
def __init__(self, cards):
self.cards = cards
def guess(self):
#use [deck] list above, it has all good cards
random.shuffle(self.cards)
return [self.cards.pop() for i in range(nCards)]
if __name__ == '__main__':
for x in range(nPlayers):
person = CardPerson(deck) #you've made your CardPerson...now, get their guesses
#person.guess() will give you 25 guesses
#compare it to the cards variable above; if matches >= 17, then...(???)
为您提供更多信息:
这不会使用
set
s(消除重复项)。编写一个循环,在500名玩家之间进行迭代。在循环主体中,(1)生成2个随机列表,每个列表包含25张牌(给当前用户的25张牌,以及她的25次猜测),(2)检查每个牌猜测对以计算正确猜测的数量,以及(3)为当前玩家存储结果。循环结束后,您将看到一个列表,其中列出了所有500名玩家的猜测表现。人们是一次猜测一个,还是提前全部猜测?他们是否意识到,在他们面前的牌组中,每种颜色最多可以有十张牌?他们一次猜一张。如果他们不知道会有什么不同吗?他们不知道每种颜色最多可以有10张牌。如果他们知道,并且他们一次猜一张(如果是模棱两可的话),那么他们就不会猜一张他们已经见过十次的颜色了。那好吧!一小时前我尝试过类似的方法,但整数显然都搞乱了:/是的,实际上我需要知道500人中有多少人正确地吐出了17张或更多的卡……啊。一个重要的区别。500人将猜出25个元素,并且需要得分超过68%才能通过。机会似乎对他们不利!祝你好运
randomGuesses[i][j]
import random
nSuits = 4 # yellow/red/blue/green
nMaxSuits = 10 # only ten of each yellow, red, blue, green
nCards = 25 # Number of random cards
nPlayers = 500
deck = [suit for suit in range(nMaxSuits) for suit in range(nSuits)]
class CardPerson(object):
def __init__(self, cards):
self.cards = cards
def guess(self):
#use [deck] list above, it has all good cards
random.shuffle(self.cards)
return [self.cards.pop() for i in range(nCards)]
if __name__ == '__main__':
for x in range(nPlayers):
person = CardPerson(deck) #you've made your CardPerson...now, get their guesses
#person.guess() will give you 25 guesses
#compare it to the cards variable above; if matches >= 17, then...(???)