制作随机数 - luosiwei-cmd/CarYon GitHub Wiki

制作随机数

下面我们就来制造一个随机数:

cyrand(a,b);

他的功能是返回一个在ab之间的随机数。

这个随机数使用的MT19337(或梅森旋转法)突破了C++自带的RAND_MAX的限制。

(如果要产生一个long long范围内的随机数,用cyrand_ll())。

我们再看看怎么把整型的变量存储到输入文件里面去:

inint(a);
instring(b);

这两个函数都是把东西输入in文件的作用,如果我们要输入一个随机数,我们这么写:

inint(cyrand());

就可以了。

例如下面的程序:

#include"caryon.h"
using namespace std;
using namespace ca;
int main(){
    dataname="test";
    makein(1,10){
        csh();
        inint(cyrand(0,100));
    }
}

就会发现目录中data-test文件夹里面出现了 test1.in-test10.in文件,用记事本打开这些文件,就会发现每一个文件里面都有一个随机数。

如果你不知道如何利用记事本打开in文件和out文件,请右击文件,点击打开方式,找到你的记事本。或者你可以使用 Dev-C++,打开软件,将in文件拖进去即可。

对于这个程序,我们如果这样编写 std.cpp

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a;
    cin>>a;
    cout<<a+10;
    return 0;
}

编译后把test.cpp改为:

#include"caryon.h"
using namespace std;
using namespace ca;
int main(){
    dataname="test";
    makein(1,10){
        csh();
        inint(cyrand(0,100));
    }
    makeout(1,10);
}

再用记事本分别打开 inout 文件,就可以发现是每个in文件的数加 $10$ 的结果了。

由于新版本的功能特性支持,在生成文件的时候会有提示,再也不用担心哪个黑框框一直跳呀跳的啦!