动手动脑——纯随机数发生器

线性同余方法(LCG)是一种产生伪随机数的方法。

 

其中A,B,M是产生器设定的常数。

LCG的周期最大为M,但大部分情况都会少于M。要令LCG达到最大周期,应符合以下条件:
1、B,M互质;
2、M的所有质因数都能整除A-1;
3、若M是4的倍数,A-1也是;
4、A,B,N0都比M小;
5、A,B是正整数。

从该式可以看出,该算法由于构成简单,具有以下优点:

1计算速度快

2易于实现

3易于写入硬件

其中B和M对计算结果影响很大

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package demo;
 
import java.util.Scanner;
 
public class Demo {
    public static void main(String[] args) {
         
        Scanner sc = new Scanner(System.in);
        int size = sc.nextInt();
        Demo.myRandom(3, size);
    }
     
    public static void myRandom(int x0, int size) {
        int x;
        x = x0;
        String s = new String();
        for(int i=0; i<size; i++) {
            x *= 214013;
            x += 2531011;
            s += (x >> 16) & 0xff;
            System.out.println(s);
            s = "";
        }
    }
}

  

结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
1000
48   28   78   131   119
25   38   207   81   136
33   73   231   0   74
95   55   153   41   6
182   254   140   102   58
195   135   211   24   249
185   0   137   0   209
111   83   157   81   44
165   76   146   187   66
216   8   79   225   40
200   61   212   92   71
175   233   25   101   157
142   32   170   249   56
38   207   42   5   224
128   188   160   93   96
86   101   152   78   236
197   78   231   53   236
13   75   96   162   142
36   3   111   68   229
84   3   53   80   155
212   9   59   231   9
96   147   0   151   105
161   158   170   177   140
216   70   56   32   223
46   202   205   236   5
140   243   119   179   214
93   170   10   64   11
21   170   0   52   163
33   115   139   205   87
249   194   13   42   6
76   150   85   118   104
66   150   33   91   204
16   176   252   63   238
175   118   174   73   227
74   38   75   221   147
225   149   207   142   188
223   159   89   235   222
58   251   236   107   43
165   185   225   108   56
66   199   123   6   26
175   177   221   113   93
208   66   66   44   219
250   205   174   42   207
72   147   189   144   210
204   209   90   168   240
177   22   155   222   207
67   194   164   19   246
108   159   115   30   88
228   196   13   41   223
207   52   20   58   168
46   220   0   59   1
0   3   40   160   51
123   209   180   12   239
176   155   255   89   239
177   140   133   50   207
182   186   184   18   183
156   162   222   242   81
146   34   41   227   120
221   240   229   169   225
97   90   50   215   18
210   107   131   68   214
207   73   93   134   10
240   153   129   84   167
252   5   254   69   139
88   74   213   187   102
128   82   42   171   62
175   141   83   16   26
233   160   64   130   7
141   240   87   34   177
101   145   226   101   166
243   142   41   70   145
125   68   126   144   205
171   127   45   88   36
5   0   228   171   48
130   154   21   144   206
186   243   126   164   140
185   179   179   154   32
19   24   28   200   202
34   180   34   154   88
91   141   115   189   155
191   69   82   0   103
18   221   201   16   71
233   226   73   76   14
23   3   90   114   130
58   141   144   69   216
58   56   127   214   130
215   120   164   39   249
31   203   159   12   183
209   103   103   205   92
154   139   109   155   194
168   149   226   238   99
234   148   5   214   170
70   89   216   226   33
127   127   225   136   95
228   236   251   135   38
51   60   197   178   4
176   244   193   63   7
22   34   10   32   163
57   197   38   33   72
65   0   245   237   44
232   121   236   208   89
78   47   254   47   244
11   68   10   151   197
102   243   44   85   12
66   189   105   185   190
1   173   252   7   48
74   234   49   21   172
203   178   101   137   20
126   79   31   150   112
84   189   244   236   89
132   90   195   251   111
108   86   34   145   125
255   217   158   2   172
93   173   70   205   115
60   95   113   255   117
96   171   211   176   208
59   197   56   91   106
4   82   200   54   172
123   43   175   151   242
92   161   119   118   167
115   33   81   197   79
44   149   11   132   187
166   226   40   151   248
119   1   129   26   180
166   198   244   110   225
19   77   224   88   139
144   88   108   23   207
48   98   253   8   0
192   181   167   18   250
248   77   22   78   25
208   23   237   152   131
174   91   245   183   118
24   194   129   191   128
252   190   135   240   155
85   166   42   104   188
72   251   15   190   160
27   117   123   219   84
75   176   83   230   228
56   6   43   67   211
70   119   121   39   178
66   46   4   100   137
125   236   108   113   5
211   125   46   60   35
231   35   7   3   197
74   136   217   120   215
55   13   84   24   53
17   152   160   221   158
164   164   155   64   102
165   1   20   22   79
23   208   35   162   243
5   109   79   138   161
180   101   198   184   80
44   217   132   35   81
208   170   205   68   107
190   30   223   44   10
209   72   174   139   119
24   56   61   177   189
146   153   162   29   23
91   164   123   12   136
58   159   48   176   71
49   148   112   125   103
173   60   23   224   168
91   203   207   253   51
250   91   71   199   43
70   83   126   183   205
119   38   197   208   37
56   121   51   191   94
105   132   173   50   81
222   174   73   7   13
107   112   177   242   82
53   53   41   161   170
241   234   193   101   173
45   214   203   205   18
148   143   203   127   84
117   229   11   103   92
19   27   170   123   60
74   90   235   169   15
42   101   186   154   147
78   216   254   108   240
170   149   186   11   140
160   201   140   61   47
124   156   215   65   225
220   5   43   8   239
112   62   22   58   122
164   149   231   47   139
14   48   120   134   218
218   146   47   53   255
191   18   148   17   60
198   57   28   114   93
4   75   112   255   140
174   153   209   110   58
154   27   229   18   160
171   155   5   199   116
191   87   213   123   88
196   40   244   217   194
237   167   245   7   147
153   180   75   127   233
199   79   2   248   25
30   136   204   166   146
18   183   144   27   230

  

posted @   ashuai~  阅读(104)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示