当前位置: 首页 > 面试题库 >

具有特定比例的二进制随机数组?

翟凯
2023-03-14
问题内容

什么是有效的(可能用Matlab术语向量化)生成随机数的零和特定比例的零的方法?特别是和Numpy在一起?

由于我的情况很特殊1/3,我的代码是:

import numpy as np 
a=np.mod(np.multiply(np.random.randomintegers(0,2,size)),3)

但是,至少K/N在K和N是自然数的情况下,是否有任何内置函数可以更有效地处理此问题?


问题答案:

如果我正确理解了您的问题,您可能会得到一些有关numpy.random.shuffle的帮助

>>> def rand_bin_array(K, N):
    arr = np.zeros(N)
    arr[:K]  = 1
    np.random.shuffle(arr)
    return arr

>>> rand_bin_array(5,15)
array([ 0.,  1.,  0.,  1.,  1.,  1.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,
        0.,  0.])


 类似资料:
  • 据你所知,PHP有一个随机函数,每个人都可以使用它。 现在我的问题是,我怎样才能将重力定义为特定的数? 例如,rand(0100)返回最小值和最大值之间的真正随机数,以及不可预见的将选择的数字,我在10个循环中使用rand,结果是: 28,41,2,94,65,23,47,97,59,69,32 现在我想在特定的数字附近有一个rand数字,例如rand(0,20)。接近10,例如长度为4的怒气。

  • 问题内容: 我想知道在特定范围内生成随机数的最佳方法(例如在Java中)是什么,而每个范围内的每个数字都有一定的发生概率? 例如 从[1; 3]内产生随机整数,并具有以下概率: P(1)= 0.2 P(2)= 0.3 P(3)= 0.5 现在,我正在考虑在[0; 100]内生成随机整数并执行以下操作的方法: 如果它在[0; 20]之内->我得到我的随机数1。 如果它在[21; 50]之内->我得到

  • 问题内容: 假设我需要一个3位数的电话号码,因此它类似于: 问题答案: 要获得一个随机的3位数字: (假设您实际上是指三位数,而不是“最多三位数”。) 要使用任意数量的数字: 输出:

  • 我试图生成8个范围内的随机数,例如1到100。我生成的很好,但我需要生成随机数,所有生成的随机数和最小-最大范围值之间的特定差异被排除。假设在1到100中,我必须生成2,12,22,32,42,52,62,72的数字。不管怎样,我都可以生成这样的随机数。 提前谢谢。

  • 我正在建立一个本体论。 我有一个叫的类 我有一个名为的对象属性 我添加了一个相当于的

  • 我需要创建一个随机整数数组,它们的和是1000000,这些数字的平均值是3。数组中的数字可以重复,数组的长度可以是任意数字。 我能找到随机整数的数组,它们的和是1000000。 然而,我不知道如何找到平均数为3的随机数。