YouthUpward 2021-12-08 19:34 采纳率: 66.7%
浏览 21
已结题

C/C++随机数效果不好怎么办

今天打算用C/C++写遗传算法的代码,发现随机性效果不好,随机数都很相近

下面代码是生成一个小数点四位、[-5,5]的实数

#include <iostream>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    srand((unsigned)time(NULL));

    int max = 100000;
    int r = rand() % max;
    float f =(float) r / 10000;
    printf("%.4f",f-5);
    return 0;
}

img

img

img

  • 写回答

1条回答 默认 最新

  • YouthUpward 2021-12-11 11:16
    关注

    问题解决啦。我用二进制编码代替浮点数编码。C语言的01随机性还是蛮好的。

    img

    评论

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 创建了问题 12月8日