生成特定的随机数

Posted

技术标签:

【中文标题】生成特定的随机数【英文标题】:Generate specific random number 【发布时间】:2021-08-16 02:48:16 【问题描述】:

我正在尝试创建一种从特定数字选择中生成随机数的方法,它必须是 0、90、180 或 270。

这是我目前在一定范围内生成随机数的方法,但我不确定如何从特定选择中生成随机数。

int randomNum(int min, int max) 
    return rand() % max + min;

【问题讨论】:

生成一个 0 到 3 之间的数,然后乘以 90 【参考方案1】:

嗯,所以我认为您正在尝试在数组或所谓的选项列表中选择特定数字,我在这里为您提供了一个快速示例。你可以创建一个包含所有选项的数组,并让这个方法从给定的数组中返回一个值。

#include <iostream>
#include <stdlib.h>
#include <time.h>

int main ()

  srand ( time(NULL) ); //initialize the random seed
  

  const char arrayNum[4] = '1', '3', '7', '9';
  int RandIndex = rand() % 4; //generates a random number between 0 and 3
  cout << arrayNum[RandIndex];

更多详情 - http://www.cplusplus.com/forum/beginner/26611/

【讨论】:

对于特定列表,0、90、180 或 270,那么(rand%4)*90) 可能是更有效的解决方案。对于一般情况,您的“查找表”想法很好。 ***.com/questions/10984974/… ***.com/questions/49880304/… ***.com/questions/2560980/… 请注意,C++ 标准具有从整数范围进行采样的工具,没有这些缺陷。见***.com/questions/288739/…

以上是关于生成特定的随机数的主要内容,如果未能解决你的问题,请参考以下文章

生成特定分布随机数的方法

生成具有特定数量负数的随机向量

邮递员 - 如何生成特定范围内的随机数?

JAVA中 如何产生一个特定范围的随机数

使用javascript生成具有特定时间范围的随机模拟数据

如何通过excel文件仅在特定时间生成随机字符串?