火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 568|回复: 34

[视窗] [开源]水淼随机数类,实现真随机效果

[复制链接]

181

主题

950

帖子

3057

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3057
发表于 2022-5-9 21:58:14 | 显示全部楼层 |阅读模式
因为发现易语言和火山的取随机数()方法是伪随机,总是取最小值附近的值(低域值),而不是随机低或高。
如想取5万到900万的随机值,结果都是5到8万的随机值,完全不存在9万到900万之间的值。
为了解决这个问题,水淼经过研究后发现可以使用取随机数和取随机小数进行结合,实现真随机或接近真随机的效果。

经过测试,在调试版下,水淼真随机耗时是火山伪随机的6倍左右,为了真随机效果,这点性能牺牲是不值得一晒的,而且一般情况下根本看不出来,尤其是现在配置越来越好。

游客,如果您要查看本帖隐藏内容请回复


水淼随机数.png

水淼随机数例程.png

评分

参与人数 1金钱 +1 收起 理由
朕的 + 1 水淼 很厉害,每次开源都是干货满满.

查看全部评分

回复

使用道具 举报

181

主题

950

帖子

3057

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3057
 楼主| 发表于 2022-5-9 21:58:42 | 显示全部楼层
正在启动被调试程序
50268
70573
78477
60007
70810
78636
67749
72345
64467
59474
78338
75871
67630
75899
77590
77999
51160
55791
55968
80544
73628
73759
70874
67022
61365
81196
77556
71680
64224
76969
火山自带伪随机,三百万次耗时, 218
54803
767969
2779948
544350
2860272
252158
948078
6318851
816006
1408608
1366611
57398
53433
601255
54314
1171024
283396
50048
2542838
50277
65675
1249003
50355
51587
62541
74499
554614
5055576
2002821
51021
水淼真随机,三百万次耗时, 1547
50944.6707134799
176336.367218553
93479.3653984782
1192588.4421913
2736497.36727589
125093.078068755
4646869.4531262
162375.889579124
8130866.42048402
3963702.3501876
180557.130466203
3390757.09387301
93432.3031590019
316121.317383113
2042202.03842091
329315.732475671
65701.8345302108
2558889.84668637
77064.3257203909
5039460.43275246
68566.574063054
2089826.58445389
52559.7964710848
748150.494035917
4575966.29075787
201388.399598609
5418004.46667072
6787287.51487777
561043.00201504
493903.849308914
水淼真随机(取小数),三百万次耗时, 1672
5
22
21
7
24
20
29
3
17
30
14
9
25
27
2
23
8
15
4
10
11
6
13
18
12
1
16
26
28
19
上面是30次不重复效果
水淼不重复随机,三百万次耗时, 6313
以上测试为调试版,水淼真随机三百万次耗时是火山自带伪随机的6倍左右。
回复

使用道具 举报

10

主题

77

帖子

735

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
735
发表于 2022-5-9 22:33:19 | 显示全部楼层
学习一下
回复

使用道具 举报

17

主题

799

帖子

2573

积分

金牌会员

Rank: 6Rank: 6

积分
2573
发表于 2022-5-9 23:01:03 | 显示全部楼层
学习....
回复

使用道具 举报

7

主题

328

帖子

1167

积分

金牌会员

Rank: 6Rank: 6

积分
1167
QQ
发表于 2022-5-10 00:16:45 | 显示全部楼层
感谢分享
回复

使用道具 举报

8

主题

52

帖子

129

积分

注册会员

Rank: 2

积分
129
发表于 2022-5-10 00:20:46 | 显示全部楼层
这个很实用,随机数确实不够随机
回复

使用道具 举报

4

主题

174

帖子

1599

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1599
发表于 2022-5-10 00:25:31 | 显示全部楼层
回复

使用道具 举报

36

主题

344

帖子

1766

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1766
发表于 2022-5-10 01:06:39 | 显示全部楼层
计算机里,没有真随机的概念..全部都是伪随机的...
回复

使用道具 举报

15

主题

80

帖子

358

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
358
发表于 2022-5-10 08:12:03 | 显示全部楼层
把取随机数的范围缩小,再加个算法来放大就行了,
回复

使用道具 举报

181

主题

950

帖子

3057

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3057
 楼主| 发表于 2022-5-10 08:32:48 来自手机 | 显示全部楼层
suyan 发表于 2022-5-10 08:12
把取随机数的范围缩小,再加个算法来放大就行了,

缩小范围有啥用,人家就是要这个范围啊。不能在最大值和最小值那里改变,而应该算法内部去改变
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2022-5-27 08:11 , Processed in 0.213754 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表