Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种简单的方法可以控制C中的一个随机数的值,用一个百分比或者其他什么?_C_Random - Fatal编程技术网

有没有一种简单的方法可以控制C中的一个随机数的值,用一个百分比或者其他什么?

有没有一种简单的方法可以控制C中的一个随机数的值,用一个百分比或者其他什么?,c,random,C,Random,例如,一个介于1和10之间的随机数,其值更可能是7。您可以从数组1-10中提取一个随机值,其中7出现两次 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char *argv[]) { // note that 7 appears twice int data[11] = { 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10

例如,一个介于1和10之间的随机数,其值更可能是7。

您可以从数组1-10中提取一个随机值,其中7出现两次

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

int main(int argc, char *argv[])
{
    // note that 7 appears twice
    int data[11] = { 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10 };
    int i;

    srand((unsigned)time(NULL));
    for(i = 0; i < 100; i++)
        printf("%d\n", data[rand()%11]);

    return 0;
}

请注意,7出现的频率比任何其他数字都高(约为两倍)。要增加频率,请在数组中放置更多的7。

您可以做一些类似于从数组1-10中提取一个随机值,其中7出现两次

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

int main(int argc, char *argv[])
{
    // note that 7 appears twice
    int data[11] = { 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10 };
    int i;

    srand((unsigned)time(NULL));
    for(i = 0; i < 100; i++)
        printf("%d\n", data[rand()%11]);

    return 0;
}

请注意,7出现的频率比任何其他数字都高(约为两倍)。若要增加频率,请在阵列中放置更多的7。

我认为这很难做到,尤其是要求,值更可能是7。问题是如何定义“随机”呢?它肯定不再是统一的了然后选择数组中的一个随机元素。你需要量化“更有可能”。好吧,我很高兴@Joe提供了到现有问题的链接,该问题涵盖了当前问题的所有方面:它有明确的措辞(没有像“更有可能”这样未定义的术语)、精确而详细的答案以及伪代码和实现建议。为什么Joe的评论没有一个单一的向上投票,而在值列表中添加更多7的hacky解决方案(既没有足够的灵活性来完全控制7的百分比,也没有针对更大集合的可伸缩性)到目前为止有6个呢?我认为这很难做到,特别是要求和值更可能是7。问题是如何定义“随机”呢?它肯定不再是统一的了然后选择数组中的一个随机元素。你需要量化“更有可能”。好吧,我很高兴@Joe提供了到现有问题的链接,该问题涵盖了当前问题的所有方面:它有明确的措辞(没有像“更有可能”这样未定义的术语)、精确而详细的答案以及伪代码和实现建议。为什么Joe的评论没有一个单一的向上投票,而在值列表中添加更多7的hacky解决方案(既没有足够的灵活性来完全控制7的百分比,也没有可扩展的更大集合)到目前为止有6个?