You need to enable JavaScript to run this app. 如何实现从{0、90、180、270}指定集合中随机抽取数字的方法
优惠活动
大模型
产品
解决方案
定价
更多

如何实现从{0、90、180、270}指定集合中随机抽取数字的方法

离散固定候选值随机生成实现方案

核心实现逻辑

  • 将目标候选值0、90、180、270存入固定数组
  • 随机生成范围在[0,3]的合法数组下标
  • 返回下标对应的数组元素即可

你现有编写的randomNum是用于生成连续区间随机数的工具,无法直接适配离散候选值的抽取需求,可按如下两种方案调整:

方案1:针对当前需求的最简实现

int randomRotate() {
    static const int candidates[] = {0, 90, 180, 270};
    int count = sizeof(candidates) / sizeof(candidates[0]);
    // 生成0~count-1的随机下标
    int index = rand() % count;
    return candidates[index];
}

方案2:基于原有randomNum函数改造实现

首先修复原有randomNum的逻辑问题,原代码生成的区间范围不符合[min, max]闭区间的预期,修正后如下:

// 修正后:返回值范围为[min, max]的连续随机整数
int randomNum(int min, int max) {
    return rand() % (max - min + 1) + min;
}

调用时先生成合法下标再取对应候选值:

int candidates[] = {0, 90, 180, 270};
int result = candidates[randomNum(0, 3)];

注意事项

rand()函数使用前需要在程序初始化阶段调用一次srand((unsigned int)time(NULL));设置随机种子,避免每次运行程序生成的随机序列完全一致。

内容的提问来源于stack exchange,提问作者Jennifer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 00:12:03