#include <iostream>
#include <ctime>
#include <cstdlib>
#include <fstream>
#include <algorithm>
#include <array>
using namespace std;
//generate random integer between 0 and MAX
int randomn(int MAX);
int main()
{
const int N = 10000;
const int T = 100; //Number of trials
srand((unsigned)time(0));
ofstream writefile ("Observation.out");
for (int indexT = 0; indexT < T; indexT++) {
//initializing myArray
array<bool, N> myArray;
array<bool, N> newArray;
auto middle = myArray.begin() + myArray.size() / 2;
fill(myArray.begin(), middle, false);
fill(middle, myArray.end(), true);
int counterIt = 0; //desired Iteration number
for (;;) {
int counterF = 0;
int randompos = 0;
bool savedata = true;
//suffling myArray using Fisher–Yates shuffle
for (int indexN = N-1; indexN > 0; indexN--) {
randompos = randomn(indexN);
savedata = myArray[randompos];
myArray[randompos] = myArray[indexN] ;
myArray[indexN] = savedata;
}
//next Iteration
for (int indexN = 0; indexN < N; indexN++) {
randompos = randomn(N-1);
savedata = myArray[randompos];
newArray[indexN] = savedata;
if (savedata == false){
counterF += 1;
}
}
copy(begin(newArray), end(newArray), begin(myArray));
//updating Iteration number
counterIt += 1;
if ((counterF == 0)|| (counterF == N)) {
break;
}
}
writefile << indexT+1 <<"\t"<<counterIt <<endl;
}
writefile.close();
return 0;
}
int randomn (int MAX){
int temp;
for (;;){
temp = rand();
if ( temp < RAND_MAX - RAND_MAX%(MAX+1) )
return temp%(MAX+1);
}
}
1st run 2nd run
1 28278 1 13583
2 7754 2 7308
3 11308 3 22580
4 5093 4 6307 ** oscillation starts
5 4952 5 42060
6 5017 6 10485
7 10400 7 8525
8 6307 ** 8 31061
9 42060 9 6307 ** 1st period
10 10485 10 42060
11 8525 11 10485
12 31061 12 8525
13 6307 ** 13 31061
14 42060 14 6307 ** 2nd period
15 10485 15 42060
rand()
不应用于任何严重的操作。它的质量可能很差。
例如,我用它做了一个模拟,我知道确切的答案。使用rand()
,模拟收敛到一个与确切答案略有不同的数字。我用更好的东西替换了rand()
,并且:
uint64_t s[2]; // seed this
uint64_t next(void) {
uint64_t s1 = s[0];
const uint64_t s0 = s[1];
const uint64_t result = s0 + s1;
s[0] = s0;
s1 ^= s1 << 23; // a
s[1] = s1 ^ s0 ^ (s1 >> 18) ^ (s0 >> 5); // b, c
return result;
}
我观察到库函数,当它在循环中被调用一次时,它几乎总是产生正数。
我正在设计一个网站,有一些h3标题和段落,包装在一个名为“featured-info”的div类中。此外,我还有一个footer元素,它位于主体中的主包装器中。各段用斜体字写成: 并且页脚有边框: 页脚文本也是一个h4向上感知: 主要的问题是我有一个设置:@media screen和(最小宽度:750px),它使一些导航按钮内联,并调整一些文本的大小,但是...当页面大小小于750px时,页脚样式
问题内容: 我有这个非常简单的课程: 在类路径中指定的此上下文文件不存在。我几乎可以输入任何想要的名称,并且代码不会中断。我的意思是测试运行正常,就好像该文件确实存在。 如果我从: classpath 到 classpath* 做了一个小的更改,它会发出喙,表示该文件不存在,这也是我在第一种情况下的预期行为。 春季版本3.2.3。 有人可以解释这种奇怪的行为吗? 编辑 建议的日志内容: 我什至尝试
问题内容: 为什么这样做有效: 但这不是: 如果我有一个数组实例变量,并且想在我的构造函数中对其进行初始化,那么我不必走 我觉得我在这里想念什么吗? 问题答案: 这里的构造在Java中称为数组初始化器。这是一个特殊的速记,仅在某些语法构造中可用: [JLS 10.6数组初始化器](http://java.sun.com/docs/books/jls/third_edition/html/array
我正在将我的应用程序从angular2 RC5和angular WebPack脚手架迁移到angular 2 2.0.0和angular cli beta 14。 你知道吗? 更新: 第一个错误可能与https://github.com/angularclass/angular2-webpack-starter#frequence-askeds-questions(第二个问题)有关,我有几个问题需
问题内容: 这个问题已经在这里有了答案 : 嵌套函数中的局部变量 (4个答案) 5年前关闭。 我在玩Python生成器和模块,并尝试制作无限版的Eratosthenes筛。这是我的代码: 当我对其进行测试时,我得到以下信息: 但是,如果我用这样的函数代替的重新分配: 我得到: 我不知道为什么第一个版本不起作用。据我所知,这两个版本应该等效。有谁知道为什么他们不一样? 问题答案: 在Python中使