博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生命游戏和随机数之间某种不可言说的秘密
阅读量:5128 次
发布时间:2019-06-13

本文共 1961 字,大约阅读时间需要 6 分钟。

为什么我感觉随便写一个一维生命游戏规则就可以做出一个看起来很随机实际上也蛮随机的随机数生成器....

 

这是代码:

1 #include 
2 #include
3 #include
4 5 #include
6 #include
7 #include
8 #include
9 10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 17 typedef unsigned int uint;18 typedef long long int ll;19 typedef unsigned long long int ull;20 typedef double db;21 22 using namespace std;23 24 inline int getint()25 {26 int res=0;27 char c=getchar();28 bool mi=false;29 while(c<'0' || c>'9') mi=(c=='-'),c=getchar();30 while('0'<=c && c<='9') res=res*10+c-'0',c=getchar();31 return mi ? -res : res;32 }33 inline ll getll()34 {35 ll res=0;36 char c=getchar();37 bool mi=false;38 while(c<'0' || c>'9') mi=(c=='-'),c=getchar();39 while('0'<=c && c<='9') res=res*10+c-'0',c=getchar();40 return mi ? -res : res;41 }42 43 db eps=1e-80;44 inline bool feq(db a,db b)45 { return fabs(a-b)
48 inline Type avg(const Type a,const Type b)49 { return a+((b-a)/2); }50 51 //==============================================================================52 //==============================================================================53 //==============================================================================54 //==============================================================================55 56 int n,m;57 58 int a[2][1005000];59 60 bool rd[1005000];61 int rt=0;62 int lastrand=7;63 int getrand() 64 {65 int res=0;66 for(int i=0;i<10;i++) res+=(rd[lastrand+(i<<1)]<
View Code

 

种子可以设lastrand,也可以设lastrand的增量,甚至是要取哪些数据计算随机数...

下面是按照以上代码生成0到1023的随机数12500个.

看起来左边有点多?....不过应该也足够....随机了.....

接下来的任务是给它写一个能用的class.....

allocate之类的最讨厌了囧...

 

 

 

 

 

 

然后下边是有趣的东西.....

 

 

 

 

 

 

这是在cout<<getrand()后加了%611的结果.这告诉我们千万不要对原生随机数乱取模!......

但是我就想要0到611之间的随机数呢?

呃....把原区间用double对应到[0,1]范围内再乘回去似乎是个可行的办法....

看起来常数有点大,我做梦的时候想想有没有更好的......

 

转载于:https://www.cnblogs.com/DragoonKiller/p/4321070.html

你可能感兴趣的文章
【题解】[P4178 Tree]
查看>>
QML学习笔记之一
查看>>
WPF中实现多选ComboBox控件
查看>>
ionic2+ 基础
查看>>
MyBaits动态sql语句
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JAVA开发环境搭建
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
SDN第四次作业
查看>>
django迁移数据库错误
查看>>
Data truncation: Out of range value for column 'Quality' at row 1
查看>>
字符串处理
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
距离公式汇总以及Python实现
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>