通过排序伪随机序列进行探索和转换

通过对伪随机序列进行排序进行调查和转换

已经创建了C#和qbasic算法以及Excel兼容表,证明了能够检查伪随机序列的随机性并能够确定非随机或低功率序列的能力。

图形化外壳:Excel表格可兼容5万多个研究对象。两种类型的元素:
1.研究数字序列;
2.研究数字0和1的序列。




数字序列研究:该表定义了二进制特征,例如,更少/更多和偶/奇。
Excel兼容表的图形外壳使用以下公式:


行的匹配数由公式N = log(1-C)/ log(1-P)计算,
其中N是步长,P是概率,C是概率的可靠性。

分配步数:
在C = P = 0.5时;
在C = 0.25时,N = 1 = log0.5 / log0.5 = log(1-1 / 2)/ log(1-1 / 2)= 1 ; P = 0.5; N = 2 = log0.75 / log0.5 = log(1-1 / 4)/ log(1-1 / 2)= 2等

A列是序列的名称;
B列-顺序;
D列-第1次分配:较少/较多;
E,F列-连续定义相同的列;
G,H栏-计算连续相同的标志数;
J栏-第2个分布:偶数/奇数;
K,L列-连续定义的符号相同;
M,N列-计算连续相同的符号数。

表格中使用的公式:

细胞



说明


C1


=平均(D1:D55000)


序列号的平均值


C2


=平均(B1:B55000)


分配平均值1


D1


= IF(B1 <C $ 2; 0; 1)


如果该数字小于平均值,则为0,否则为1


D2


= IF(B2 <C $ 2; 0; 1)


如果数字小于avg,则为0,否则为1,依此类推。


E2


= IF(D2 = D1; E1 +1; 0)


如果分配的符号相同,则连续相同的计数器为+1,否则将重置计数器


F2


= IF(E3 = 0; E2;“”)


如果重置了计数器,则会记录最高的计数器。


G2-g19


0 ... 7


数字以进行比较


H1


=总和(H2:H10)


比较总和


H2


=(F$1:F$55000;G2)


1


H3


=(F$1:F$55000;G3)


  2 ..


H12


=H2/H3



I12


=(H12:H19)



I13


=(N12:N19)


..


I1


=(J1:J55000)


2


J1


=(B1/2=(B1/2);0;1)


, 0, 1


J2


=(B2/2=(B2/2);0;1)


, 0, 1 ..


K2


=(J2=J1;K1+1;0)


,   +1,


L2


=(K3=0;K2;" ")


,


M2-M19


0…7



N1


=(N2:N10)



N2


=(L$1:L$55000;M2)


1


N3


=(L$1:L$55000;M3)


2 ..


N12


=H2/H3




可以在表中编程其他监视功能。
在表中可以创建任何单元格的值的图形。

该表的后续部分探讨了序列的

随机排列:Q列-排列随机:最大为10 ^ 6的整数,
以最大程度地减少随机数的重复;
R列-最初是B列的副本,然后进行了修改;
T ... AE列与C ... N列相同。

细胞



说明


Q1


=(0; 1,000,000)之间的大小写


随机重新排列


Q2


=(0; 1,000,000)之间的大小写


随机排列等



通过对2列Q和R进行排序来完成排列:
列Q在前,列R在从属。

结果:列R和一个新序列的置换。

基于集成式PRNG的PRNG研究表明了该算法的正确性。
在排列500个像元之前:

在排列500个像元之后:该

检查显示出良好的分布,比较了以下符号:小/大和偶数/奇数。

该表使用三角函数的十进制数字检查三角PRNG,而不使用标准PRNG。
'rndsin.bas
OPEN "rndsin.txt" FOR OUTPUT AS #1
c = 0: a = SIN(TIMER) * 100 + 200
PRINT #1, "a= ", a

FOR k = 1 TO 10 ^ 3 + a * 10 ^ 3: NEXT

FOR i = 1 TO 100
    FOR j = 1 TO a
        x = SIN(TIMER) * 1000 + 2000
        b = COS(x): c = c + b
        LOCATE 1, 1: PRINT j
    NEXT

    d = (ABS(c)) - INT(ABS(c))
    PRINT #1, d
    FOR k = 1 TO 10000 + a * b * c * 10 ^ 2: NEXT
NEXT

在排列500个像元之前:不能令人满意,

显然,分布很差,显示了值的频率和散度,并比较了符号:小/大,偶/奇。

重新排列500个单元之后:正常


目的:排除内置PRNG。

重排方法:对原始序列进行排序,将以任何方式反转或反向的相同序列作为随机序列进行重排。

例如,在Excel中,在远处创建了一个序列列的2个副本,并且在左侧的一列上建立了行的1 ... 55000的前导行,并且从最大到最小对2列进行了排序,从而反转了原始数据。

接下来,序列的2列并排映射并排序,其中前导列是反向列,从属列是初始列。

在排列500个单元之前:不令人满意

在排列500个单元之后:正常


结果:该序列在没有内置PRNG的情况下变为正常。

结论:真正的随机性对人们来说是不自然的,并且有可能合成被人和计算机接受为随机序列的低功率或错误序列。

任何序列都可以真正地以编程语言和Excel兼容表进行合成。

通过在带有图表的Excel电子表格中将随机性识别为正常还是错误,可以解决克服随机性的问题。

Q.E.D.


继续获得批准:

qbasic和C#语言的置换程序。pi
位数的研究。
随机性的伪造。
2020年志同道合的外国人的发展。

All Articles