⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 randtest.c

📁 遗传算法的源程序例子
💻 C
📖 第 1 页 / 共 2 页
字号:
        counter = 0;    cout << NFLIPS << " calls to GARandomDouble(0,5)\t";    for(i=0; i<NFLIPS; i++)      counter += GARandomDouble(0,5);    mean = counter/(double)NFLIPS;    cout << mean << " (should be about 2.5)\n"; cout.flush();        counter = 0;    cout << NFLIPS << " calls to GARandomDouble(-10,-5)\t";    for(i=0; i<NFLIPS; i++)      counter += GARandomDouble(-10,-5);    mean = counter/(double)NFLIPS;    cout << mean << " (should be about -7.5)\n"; cout.flush();            counter = 0;    cout << NFLIPS << " calls to GARandomDouble(-10,10)\t";    for(i=0; i<NFLIPS; i++)      counter += GARandomDouble(-10,10);    mean = counter/(double)NFLIPS;    cout << mean << " (should be about 0.0)\n"; cout.flush();    // check means of repeated coin tosses        cout << "\n";    float ave;    cout << "[0, 1] with GARandomFloat()...\t\t";    ave = 0;    for(i=0; i<50; i++)      ave += GARandomFloat();    cout << ave/50 << " ";    ave = 0;    for(i=0; i<50; i++)      ave += GARandomFloat();    cout << ave/50 << " ";    ave = 0;    for(i=0; i<50; i++)      ave += GARandomFloat();    cout << ave/50 << "\n";    cout.flush();        cout << "[0, 1] with GARandomFloat(0,1)...\t";    ave = 0;    for(i=0; i<50; i++)      ave += GARandomFloat(0,1);    cout << ave/50 << " ";    ave = 0;    for(i=0; i<50; i++)      ave += GARandomFloat(0,1);    cout << ave/50 << " ";    ave = 0;    for(i=0; i<50; i++)      ave += GARandomFloat(0,1);    cout << ave/50 << "\n";    cout.flush();        cout << "[0, 100] with GARandomFloat(0,100)...\t";    ave = 0;    for(i=0; i<50; i++)      ave += GARandomFloat(0,100);    cout << ave/50 << " ";    ave = 0;    for(i=0; i<50; i++)      ave += GARandomFloat(0,100);    cout << ave/50 << " ";    ave = 0;    for(i=0; i<50; i++)      ave += GARandomFloat(0,100);    cout << ave/50 << "\n";    cout.flush();        double aved;    cout << "[0, 1] with GARandomDouble()...\t\t";    aved = 0;    for(i=0; i<50; i++)      aved += GARandomDouble();    cout << aved/50 << " ";    aved = 0;    for(i=0; i<50; i++)      aved += GARandomDouble();    cout << aved/50 << " ";    aved = 0;    for(i=0; i<50; i++)      aved += GARandomDouble();    cout << aved/50 << "\n";    cout.flush();        cout << "[0, 1] with GARandomDouble(0,1)...\t";    aved = 0;    for(i=0; i<50; i++)      aved += GARandomDouble(0,1);    cout << aved/50 << " ";    aved = 0;    for(i=0; i<50; i++)      aved += GARandomDouble(0,1);    cout << aved/50 << " ";    aved = 0;    for(i=0; i<50; i++)      aved += GARandomDouble(0,1);    cout << aved/50 << "\n";    cout.flush();        cout << "[0, 100] with GARandomDouble(0,100)...\t";    aved = 0;    for(i=0; i<50; i++)      aved += GARandomDouble(0,100);    cout << aved/50 << " ";    aved = 0;    for(i=0; i<50; i++)      aved += GARandomDouble(0,100);    cout << aved/50 << " ";    aved = 0;    for(i=0; i<50; i++)      aved += GARandomDouble(0,100);    cout << aved/50 << "\n";    cout.flush();        cout << "\n";        int count;    cout << "1% coin flip...\t\t";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.01);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.01);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.01);    counter = (double)count / (double)i;    cout << counter << "\n";    cout.flush();        cout << "25% coin flip...\t";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.25);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.25);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.25);    counter = (double)count / (double)i;    cout << counter << "\n";    cout.flush();    cout << "50% coin flip...\t";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.5);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.5);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.5);    counter = (double)count / (double)i;    cout << counter << "\n";    cout.flush();        cout << "75% coin flip...\t";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.75);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.75);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.75);    counter = (double)count / (double)i;    cout << counter << "\n";    cout.flush();        cout << "99% coin flip...\t";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.99);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.99);    counter = (double)count / (double)i;    cout << counter << " ";    count = 0;    for(i=0; i<NFLIPS; i++)      count += GAFlipCoin(0.99);    counter = (double)count / (double)i;    cout << counter << "\n";    cout.flush();        long lcount;    cout << "\ncalls to GARandomBit (these should yield 50%)...\n";    lcount = 0;    for(i=0; i<NFLIPS; i++)      lcount += GARandomBit();    counter = (double)lcount / (double)i;    cout << counter << " ";    lcount = 0;    for(i=0; i<NFLIPS; i++)      lcount += GARandomBit();    counter = (double)lcount / (double)i;    cout << counter << " ";    lcount = 0;    for(i=0; i<NFLIPS; i++)      lcount += GARandomBit();    counter = (double)lcount / (double)i;    cout << counter << "\n";    cout.flush();  }// check for values outside of bounds  if(dobnds) {    cout << "\n";    cerr << "bounds test...\n";    cout << "check for out of bounds...\n";    long int ii, err;    int vali;    cerr << "  " << NUM_CHECKS << "  GARandomInt(-10,5)...\n";    cout << "GARandomInt(-10,5) ..."; cout.flush();    err = 0;    for(ii=0; ii<NUM_CHECKS; ii++){      vali = GARandomInt(-10,5);      if(vali < -10 || vali > 5){ err += 1; }    }    if(err) cout << " " << err << " values out of bounds.\n";    else cout << "ok\n";    cout.flush();        cerr << "  " << NUM_CHECKS << "  GARandomInt(0,3)...\n";    cout << "GARandomInt(0,3) ..."; cout.flush();    err = 0;    for(ii=0; ii<NUM_CHECKS; ii++){      vali = GARandomInt(0,3);      if(vali < 0 || vali > 3){ err += 1; }    }    if(err) cout << " " << err << " values out of bounds.\n";    else cout << "ok\n";    cout.flush();        cerr << "  " << NUM_CHECKS << "  GARandomInt(200,255)...\n";    cout << "GARandomInt(200,255) ..."; cout.flush();    err = 0;    for(ii=0; ii<NUM_CHECKS; ii++){      vali = GARandomInt(200,255);      if(vali < 200 || vali > 255){ err += 1; }    }    if(err) cout << " " << err << " values out of bounds.\n";    else cout << "ok\n";    cout.flush();    float valf, lastf=0.0;    cerr << "  " << NUM_CHECKS << "  GARandomFloat(-10,5)...\n";    cout << "GARandomFloat(-10,5) ..."; cout.flush();    for(ii=0; ii<NUM_CHECKS; ii++){      valf = GARandomFloat(-10,5);      if(valf < -10 || valf > 5){ err += 1; lastf = valf; }    }    if(err) cout << " " << err << " values out of bounds (" << lastf << ").\n";    else cout << "ok\n";    cout.flush();        cerr << "  " << NUM_CHECKS << "  GARandomFloat(0,3)...\n";    cout << "GARandomFloat(0,3) ..."; cout.flush();    err = 0;    for(ii=0; ii<NUM_CHECKS; ii++){      valf = GARandomFloat(0,3);      if(valf < 0 || valf > 3){ err += 1; lastf = valf; }    }    if(err) cout << " " << err << " values out of bounds (" << lastf << ").\n";    else cout << "ok\n";    cout.flush();        cerr << "  " << NUM_CHECKS << "  GARandomFloat(200,255)...\n";    cout << "GARandomFloat(200,255) ..."; cout.flush();    err = 0;    for(ii=0; ii<NUM_CHECKS; ii++){      valf = GARandomFloat(200,255);      if(valf < 200 || valf > 255){ err += 1; lastf = valf; }    }    if(err) cout << " " << err << " values out of bounds (" << lastf << ").\n";    else cout << "ok\n";    cout.flush();    double vald, lastd=0.0;    cerr << "  " << NUM_CHECKS << "  GARandomDouble(-10,5)...\n";    cout << "GARandomDouble(-10,5) ..."; cout.flush();    for(ii=0; ii<NUM_CHECKS; ii++){      vald = GARandomDouble(-10,5);      if(vald < -10 || vald > 5){ err += 1; lastd = vald; }    }    if(err) cout << " " << err << " values out of bounds (" << lastd << ").\n";    else cout << "ok\n";    cout.flush();        cerr << "  " << NUM_CHECKS << "  GARandomDouble(0,3)...\n";    cout << "GARandomDouble(0,3) ..."; cout.flush();    err = 0;    for(ii=0; ii<NUM_CHECKS; ii++){      vald = GARandomDouble(0,3);      if(vald < 0 || vald > 3){ err += 1; lastd = vald; }    }    if(err) cout << " " << err << " values out of bounds (" << lastd << ").\n";    else cout << "ok\n";    cout.flush();        cerr << "  " << NUM_CHECKS << "  GARandomDouble(200,255)...\n";    cout << "GARandomDouble(200,255) ..."; cout.flush();    err = 0;    for(ii=0; ii<NUM_CHECKS; ii++){      vald = GARandomDouble(200,255);      if(vald < 200 || vald > 255){ err += 1; lastd = vald; }    }    if(err) cout << " " << err << " values out of bounds (" << lastd << ").\n";    else cout << "ok\n";    cout.flush();  }  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -