gpt4 book ai didi

c - 随机 float

转载 作者:太空狗 更新时间:2023-10-29 16:42:34 28 4
gpt4 key购买 nike

我写这个函数是为了得到一个介于 0 .. 1 之间的伪随机 float :

float randomFloat()
{
float r = (float)rand()/(float)RAND_MAX;
return r;
}

但是,它总是返回 0.563585。无论我运行控制台应用程序多少次,数字都是一样的。

编辑:

如果需要,这是我的整个应用程序:

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

float randomFloat()
{
float r = (float)rand() / (float)RAND_MAX;
return r;
}

int main(int argc, char *argv[])
{
float x[] = {
0.72, 0.91, 0.46, 0.03, 0.12, 0.96, 0.79, 0.46, 0.66, 0.72, 0.35, -0.16,
-0.04, -0.11, 0.31, 0.00, -0.43, 0.57, -0.47, -0.72, -0.57, -0.25,
0.47, -0.12, -0.58, -0.48, -0.79, -0.42, -0.76, -0.77
};

float y[] = {
0.82, -0.69, 0.80, 0.93, 0.25, 0.47, -0.75, 0.98, 0.24, -0.15, 0.01,
0.84, 0.68, 0.10, -0.96, -0.26, -0.65, -0.97, -0.03, -0.64, 0.15, -0.43,
-0.88, -0.90, 0.62, 0.05, -0.92, -0.09, 0.65, -0.76
};

int outputs[] = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};

int patternCount = sizeof(x) / sizeof(int);

float weights[2];
weights[0] = randomFloat();
weights[1] = randomFloat();

printf("%f\n", weights[1]);

float learningRate = 0.1;

system("PAUSE");
return 0;
}

最佳答案

你需要打电话

srand(time(NULL));

使用前rand首次。 time<time.h> .

编辑:正如 Jonathan Leffler 指出的那样,这很容易预测,所以不要尝试将其用于密码学。

关于c - 随机 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1694827/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com