我正在研究一种需要尽快生成数百万个数字的算法。实际上我发现我的算法的 rand() 函数占用了 75% 的处理时间。
所以我正在寻找更快的东西。而且我根本不需要大范围。(我只需要 1000 以下的整数)
你知道我可以使用的东西吗?
谢谢 !
编辑 :
我使用这个数字来洗牌少于 1000 个实体的组。
我发现了更多关于“快速兰特”的信息。还有 SSE 版本,速度更快,一次生成 4 个数字。
我的问题在某种程度上与在data.frame中为缺失值添加行的最快方法有关?但我觉得有点困难.我无法弄清楚如何使这个解决方案适应我的问题.
这是我的data.table看起来像:
ida idb value date
1: A 2 26600 2004-12-31
2: A 3 19600 2005-03-31
3: B 3 18200 2005-06-30
4: B 4 1230 2005-09-30
5: C 2 8700 2005-12-31
Run Code Online (Sandbox Code Playgroud)
不同之处在于每个'ida'都有自己的日期,并且至少有一行"ida"出现在每个日期,但不一定是所有'idb'.我想插入缺少相应日期的每个缺失('ida','idb')对,并将0作为值.
而且,日期没有周期性.
你会怎么做?
期望的输出:
ida idb value date
1: A 2 26600 2004-12-31
1: A 2 0 2005-03-31
2: A 3 19600 2005-03-31
2: A 3 0 2004-12-31
3: B 3 18200 2005-06-30
4: B 3 0 2005-09-30
5: B 4 1230 2005-09-30
4: B …Run Code Online (Sandbox Code Playgroud)