码迷,mamicode.com
首页 > 其他好文 > 详细

面条的随机数生成器——连带对拍教程

时间:2018-02-07 12:11:29      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:注意   解决   space   ctime   方便   turn   using   输出   ror   

Background

  • 又是那个吃面条的晚上,我和wjh还有邢神因为方便面的口味分配问题产生了一个绝妙的解决方案,随机数。

    #include<iostream>
    #include<cstdio>
    #include<ctime>
    #include<algorithm>
    using namespace std;
    int main()
    {
    int random;
    int exist[4]={0};
    srand(time(NULL));
    for(int i=1;i;)
    {
        random=rand()%3+1;
        if(exist[random])continue;
        exist[random]=1;
        printf("%d\n",random);
        system("pause");
    }
    return 0;
     } 

Solution

随机数生成技巧

  • 对于生成指定范围的随机数,我们可以通过mod来处理。

    Sample
    r=rand()%5+1;//生成1-5之间的随机数
  • 为什么膜5再加一呢?如果mod6的话,确实可以出现1-5,但也会出现0,而mod5的结果是0-4,保证出现1-5,视实际情况可以选择不同的处理方式。

对拍脚本

  • 将暴力,正解和随机数生成器放在同一目录下,新建一个.bat

    @echo off
    :loop
    random.exe
    seq.exe
    std.exe
    fc seq.out ans.out
    if %errorlevel%==0 goto loop
    pause
    :end
  • 需要注意的是,要保证random的输出文件是后面两个程序的输入文件.
  • 当输出不同时,bat就会停止.

  • Feb.07,2018 Wed

面条的随机数生成器——连带对拍教程

标签:注意   解决   space   ctime   方便   turn   using   输出   ror   

原文地址:https://www.cnblogs.com/nishikino-curtis/p/8425415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!