【问题标题】:I need to generate random numbers but each number must be different from the other我需要生成随机数,但每个数字必须彼此不同
【发布时间】:2018-02-20 00:29:13
【问题描述】:

我在另一个文件中找到了一个函数,来回忆我使用的那个函数:

app.put_number(row, column, number)

这基本上是生成一个矩阵,但是在第一列中,对于每一行我需要一个从 1 到 20 的随机数,并且每个数字必须是唯一的,我尝试使用 random.randrange()。 例如:

app.put_number(0, 0, random.randrange(1,21))
app.put_number(1, 0, random.randrange(1,21))

但有时它会生成相同的数字,我需要它们中的每一个都不同。

另外我不能用实际函数来处理文件,我只能使用 if、else、while、for 和 app.put_number(row, column, number)

【问题讨论】:

  • 这里每周询问一次。搜索一下!

标签: python random numbers unique


【解决方案1】:

一种解决方案是将生成的数字保存在一个列表中,然后调用随机数生成器,直到它给出的数字不在您的已生成数字列表中。

【讨论】:

    【解决方案2】:

    尝试使用 Random.sample()。它返回一个范围内的唯一数字 根据下面的文档“要从整数范围中选择样本,请使用 range() 对象作为参数。这对于从大量人口中采样特别快速且节省空间:sample(range(10000000), k=60) 。”

    https://docs.python.org/3/library/random.html

    【讨论】:

      【解决方案3】:

      如果您用您希望完成此任务的特定语言标记您的问题会很有帮助。

      然而,从概念上讲;您需要在每次生成新数字时检查填充的数组,以确保您没有在数组中插入已经存在的数字。如果您想变得花哨,甚至可以拥有一个数字数组并随机选择要放入数字的数组的索引,从而有效地将它们“洗牌”在一起。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多