C ++排除范围内的随机数 [英] C++ Random number within range with exclusion

查看:291
本文介绍了C ++排除范围内的随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想生成范围从0到5的随机数,但是例如,在某些情况下,我不需要数字3,我只需要0,1,2,4,5。如何生成随机数

I want to generate random number in range from 0 to 5, but for example, in some cases I don't need number 3, I only need 0, 1, 2, 4, 5. How can I generate random number within range, but with option to exclude numbers I don't need.

推荐答案

是否要在编译时排除已知的数字时间?然后一个简单的查找表应该:

Are the numbers you want to exclude known at compile time? Then a simple lookup table should do:

static int table[] = {0, 1, 2, 4, 5};
int index = rand() % (sizeof table / sizeof *table);
int number = table[index];

当然, rand()可怕的伪随机数生成器,但这是一个不同的主题。

Of course, rand() is a terrible pseudo random number generator, but that's a different topic.

这篇关于C ++排除范围内的随机数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆