Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的随机猜测_Python - Fatal编程技术网

Python中的随机猜测

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

我有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():
       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...(???)