Python彩票程序如何比较随机列表?

2024-10-02 12:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个彩票程序,在那里,一周内每天都有(101000)人随机参加。每张票是6个介于(1,50)之间的随机数,例如:[5,20,45,16,18,34]。有一张随机生成的奖券。 所以我想将所有随机票号与这张奖券进行比较,得到如下输出: 468人知道6人中的0人,351人知道6人中的1人,167人知道6人中的2人。。。等等,这是我的工作,但我在这一点上卡住了

import random
lucky_number1 = random.sample(range(1, 50), 1)
lucky_number2 = random.sample(range(1, 50), 1)
lucky_number3 = random.sample(range(1, 50), 1)
lucky_number4 = random.sample(range(1, 50), 1)
lucky_number5 = random.sample(range(1, 50), 1)
lucky_number6 = random.sample(range(1, 50), 1)
picked = []
def draw():
    lucky_numbers = [lucky_number1, lucky_number2, lucky_number3, lucky_number4 ,lucky_number5 ,lucky_number6]
    return lucky_numbers
print("Lucky Numbers:", draw())
def play_week():
    totalpeople = 0
    import random
    people = []
    for a in range(0,7):
        a = random.randint(10,100)
        people.append(a)
    print("daily people in a week :" ,people)
    totalpeople = totalpeople + sum(people)
    played_tickets = []
    for i in range(totalpeople):
        n = random.sample(range(1,50), 6)
        played_tickets.append(n)
    print("Number of tickets: " ,len(played_tickets))
    return played_tickets
play_week()

def decide_winners(played_tickets, lucky_numbers):
    right_guesses = [468 ,351 ,167 ,35 ,13 ,2]

多谢各位


Tags: sampleinimportdefrangerandompeopletickets
1条回答
网友
1楼 · 发布于 2024-10-02 12:33:06

让我们先看一下您的代码lucky_number1-6可以被lucky_numbers = random.sample(range(1,50), 6)替换并合并为draw()无需双重导入

import random

def draw():
    lucky_numbers = random.sample(range(1, 50), 6)
    return lucky_numbers

def play_week():

    people = []

    for a in range(0,7):
        a = random.randint(10,100)
        people.append(a)

    print("daily people in a week :" ,people)

    totalpeople = sum(people)
    
    played_tickets = []

    for i in range(totalpeople):
        n = random.sample(range(1,50), 6)
        played_tickets.append(n)

    print("Number of tickets: " ,len(played_tickets))
    decide_winners(played_tickets)


def decide_winners(played_tickets):
    lucky_nums = draw()
    right_guesses = [0 ,0 ,0 ,0 ,0 ,0]

    for i in played_tickets:
        match = len(set(i) & set(lucky_nums))

        if match != 0:
            right_guesses[match - 1] += 1
    print(right_guesses)

play_week()

计算数字时,首先要绘制()并比较两个列表。这里len(set(A)和set(B))返回两个列表中相同变量的数量

相关问题 更多 >

    热门问题