Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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_Python 2.7_Python 3.x - Fatal编程技术网

Python 如何编写只会重复一次随机数的代码?

Python 如何编写只会重复一次随机数的代码?,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,这就是我到目前为止所做的: import random for x in range(10): tickets = [random.sample(range(0,59), 6)] print (tickets) 但是我需要这样做,除了两个相同的数字外,所有生成的数字都是不同的 所以这是我的问题,希望能在周五之前得到帮助!这是我被要求参考的问题:“我的新年决心是中彩票。为了做到这一点,我每周要买10张票。我将为每张票随机选择6个数字。数字从1到59不等。除需要复制的数字外,所有数

这就是我到目前为止所做的:

import random
for x in range(10):
    tickets = [random.sample(range(0,59), 6)]
    print (tickets)
但是我需要这样做,除了两个相同的数字外,所有生成的数字都是不同的


所以这是我的问题,希望能在周五之前得到帮助!这是我被要求参考的问题:“我的新年决心是中彩票。为了做到这一点,我每周要买10张票。我将为每张票随机选择6个数字。数字从1到59不等。除需要复制的数字外,所有数字只能使用一次。用python编写一个程序来模拟这种情况。”

您可以通过跟踪已使用的数字并在以后的示例中禁用它们来避免重复数字:

import random

def non_repeating_random_sample(population, k, seen):
    while True:
        sample = random.sample(population, k)
        if not any(number in seen for number in sample):
            seen.union(sample)
            return sample

seen = set()
for _ in range(10):
    tickets = [non_repeating_random_sample(range(0, 59), 6, seen)]
    print(tickets)
在进行类似操作时,可能需要了解返回的样本(第一个样本除外)并非真正随机的,因为存在额外的限制

不管怎样,只需对整个群体进行洗牌,然后从中提取所需大小的组,会更简单、更快:

import random

number_of_samples = 10
number_per_sample = 6

samples = list(range(number_of_samples*number_per_sample))
random.shuffle(samples)

generator = zip(*[iter(samples)]*number_per_sample)
for _ in range(number_of_samples):
    print(list(next(generator)))

也许我误解了。你能不能用
random.shuffle(range(60))
将列表分为10个子列表?除了两个相同的数字“我不清楚。所需的输出究竟是什么样的?目前,您只需打印结果。数字可以在<代码>票的迭代中重复吗?现在我想到了:[[50,48,12,0,4,39][[17,54,53,42,5,58][[7,22,38,44,48,39][[39,7,22,49,4,44][[31,5,29,14,18,13][[50,47,11,12,6,5][[43,32,31,34,0,10][[49,45,56,55,58,1]][[53,2,21,18,14,14,10]]但我的问题是有些数字是重复的,比如49和50,但我的任务是只允许一个数字有重复,很抱歉没有说清楚,希望我现在做得更好!但是复制品在哪里?在单个子列表中?需要复印件吗?必须在10张车票中的一张,复印件在另一张车票中。问题是:“我的新年决心是中彩票。为此,我每周将购买10张彩票。我将为每张彩票随机选择6个数字。数字范围从1到59。除了一个需要复制的数字外,所有数字只能使用一次。用python编写一个程序来模拟这一点。”