如何生成1-10之间的随机数?

发布于 2024-12-18 23:54:33 字数 35 浏览 0 评论 0原文

是否可以生成 1 -10 之间的随机数,但不应该是 5?

Is it possible to generate a random numbers between 1 -10 but it should not be 5?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

可遇━不可求 2024-12-25 23:54:33
#include <stdlib.h>

// ...

int i;

do {
   i = rand() % 10 + 1; // generate random number from 1 to 10
} while (i == 5);       // repeat until number != 5
#include <stdlib.h>

// ...

int i;

do {
   i = rand() % 10 + 1; // generate random number from 1 to 10
} while (i == 5);       // repeat until number != 5
暖伴 2024-12-25 23:54:33
int x = arc4random()%9;
x += x>=4? 2 : 1
int x = arc4random()%9;
x += x>=4? 2 : 1
终遇你 2024-12-25 23:54:33

一个简单的解决方案是使用系统函数生成 1-10 之间的随机数,如果碰巧是 5,则再次生成它,直到不是这种情况为止。这个解决方案有一个极小的可能性,即你的函数在 iPhone 电池耗尽之前不会返回:)。下面列出了替代方案

另一种解决方案是使用 1-9 之间的系统函数生成随机数,并将 5-9 映射为 6-10

int GenRandomNumber()
{
    int x = GetSystemRandomBetween1and9();
    if ( x >= 5 )
      x += 1;
    return x;
}

A simple solution is to generate a random number between 1-10 using a system function and if it happens to be 5 generate it again until it is not the case. This solution has a minuscule probability that your function doesn't return until the iPhone batter dies :). The alternative is listed below

Another solution is to generate a random number using a system function between 1-9 and map 5-9 as 6-10

int GenRandomNumber()
{
    int x = GetSystemRandomBetween1and9();
    if ( x >= 5 )
      x += 1;
    return x;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文