gpt4 book ai didi

python - 带条件的随机数生成器 - Python

转载 作者:行者123 更新时间:2023-12-03 14:22:45 25 4
gpt4 key购买 nike

我是 Python 新手,并尝试生成 5 个具有 2 个条件的数字:

  • 必须有 3 个偶数和 2 个奇数
  • 在这 5 个数字中,3 个必须是低 (1,51),2 个必须是高 (51,100)。哪个数字低或高并不重要。

  • 我设法解决了第一部分:
    import random
    rand_even = random.sample(range(0, 100, 2), 3)
    rand_odd = random.sample(range(1, 100, 2), 2)
    rand_total = rand_even,rand_odd
    print(rand_total)

    显然这并没有让我在任何地方
    对于第二部分,我想我可以使用类似的东西:
    rand_low = random.sample(range(0, 51), 3)
    rand_high = random.sample(range(51,100), 2)

    但显然这不是方法,因为我得到了 5 个以上的数字。

    任何帮助将被appriciated。
    谢谢

    最佳答案

    问题是,正如其他人所指出的,我们是否允许高/低和偶数/奇数之间的相关性。下面的代码没有介绍这个相关性。

    import random
    n = 5
    odd = 2
    high = 2

    odd_indices = random.sample(range(n), odd)
    high_indices = random.sample(range(n), high)
    out = random.sample(range(26),n)
    for i in range(n):
    out[i] *= 2
    if i in odd_indices:
    out[i] += 1
    if i in high_indices:
    out[i] += 50

    请注意,这包括数字 100 作为输出选项。严格来说,您没有包括它,因此如果命中 100,您可以引入一个转变:
        if out[i]==100:
    out[i] -= random.sample(range(1,25),1)[0]*2

    此代码未针对性能进行优化。

    编辑

    但是,此代码将具有不规则性,就像在每个可能的输出 2k 中一样和 2k+1绝不会同时发生任何 k .

    关于python - 带条件的随机数生成器 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62091758/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com