小编Leg*_*dre的帖子

为什么rand()/ double(RAND_MAX)的第一个结果不是随机的

这与这个问题有关 - 在C++中生成随机数...第一个数字不是很随机

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

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

cout << rand() / double(RAND_MAX) << endl;
cout << rand() / double(RAND_MAX) << endl;
cout << rand() / double(RAND_MAX) << endl;
cout << rand() / double(RAND_MAX) << endl;
cout << rand() / double(RAND_MAX) << endl;

return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果一遍又一遍地运行二进制(.exe),您会注意到第一个结果始终具有相同的前三个数字.例如每次运行总是0.54xxxxx.

不,这不是因为我发现没有任何模式.并且在每次运行之间等待几秒也没有帮助.

编辑:只有第一个结果具有前三个相同的数字.其余的都是"随意看".此外,生成器使用srand()(在上面的代码示例的第一行)上播种.

c++ random

2
推荐指数
1
解决办法
1735
查看次数

在node.js中"if(somefunction())"阻塞了吗?

test = function(x){   
    if ( some conditions ) { return true; }
    else { return false; }
}


if (test(y)) {document.write("You have done this before!")?}?;?

console.log("Checked!");
Run Code Online (Sandbox Code Playgroud)

目的是检查用户过去是否执行了某些操作.这些只是模拟代码,虽然没有真正反映我实际在做什么.

题:

我对node.js比较新,所以如果这听起来微不足道,请原谅我.假设测试(y)为真.我能确定在document.write之后执行console.log吗?即使测试(y)需要很长时间才能运行?

换句话说,我需要"if(test(y))..."来阻止.我理解将函数作为参数传递,例如setInterval(test(y),100); 可以是异步和非阻塞.但是"if(test(y))......"怎么样?

javascript node.js

1
推荐指数
1
解决办法
300
查看次数

循环创建双精度并将它们插入到排序数组中,在C中

假设我有一组已排序的双打.

{ 0.124, 4.567, 12.3 }
Run Code Online (Sandbox Code Playgroud)

一个正的,非零的double是由代码的另一部分创建的,需要在保持排序的同时插入到该集合中.例如,如果创建的double是7.56,则最终结果是,

{ 0.124, 4.567, 7.56, 12.3 }
Run Code Online (Sandbox Code Playgroud)

在我的代码中,这个"创建双重并插入有序集合"过程然后重复了很多次.可能是500k到100万次.我不知道总共会创造多少双打,但我知道上限.

尝试

我天真的第一种方法是创建一个长度=上限的数组,并用零填充它,然后添加初始的双精度集("add"=用双精度替换0值的数据).每当创建一个double时,我将它添加到数组并执行插入排序,我读到这对排序有序数组很有用.

我有一种感觉,运行500k到100万插槽将是一个严重的性能问题.(或者我错了?)在C中是否有更高效的数据结构和/或算法?

编辑:

我想保持集合排序的原因是因为在每次"创建双重并插入有序集合"过程之后,我需要能够查找该集合中的最小元素(并且可能通过将其替换为0来删除它) ).我认为最好的方法是保持集合排序.

但如果情况不是这样,也许还有另一种选择吗?

c sorting

1
推荐指数
1
解决办法
548
查看次数

如何阻止Matlab舍入双打?

e = realmin;
x = 1 - e;

fprintf('x is %g',x);
Run Code Online (Sandbox Code Playgroud)

生产x is 1.但是,我试图设置x为1减去一个小epsilon,它等于realmin.

如何停止四舍五入?

matlab rounding

1
推荐指数
1
解决办法
1609
查看次数

标签 统计

c ×1

c++ ×1

javascript ×1

matlab ×1

node.js ×1

random ×1

rounding ×1

sorting ×1