01 疑似乱数
疑似乱数¶
擬似乱数列の生成¶
# 擬似乱数列の生成
import randomfor i in range(100):
r = random.randrange(1, 1001)
print(r)627
294
869
467
630
462
654
445
502
540
836
237
204
338
396
405
612
760
707
677
270
402
984
45
354
189
980
708
374
555
829
905
763
484
786
441
752
604
440
43
866
681
852
760
134
470
296
159
762
865
315
922
838
107
245
523
520
765
143
737
606
177
896
41
292
551
430
312
501
204
323
477
337
251
341
114
234
784
28
697
400
278
893
883
601
63
440
656
43
170
900
822
926
823
367
156
799
772
646
249
シード¶
# シード
random.seed(1)
for i in range(100):
r = random.randrange(1, 1001)
print(r)138
583
868
822
783
65
262
121
508
780
461
484
668
389
808
215
97
500
30
915
856
400
444
623
781
786
3
713
457
273
739
822
235
606
968
105
924
326
32
23
27
666
555
10
962
903
391
703
222
993
433
744
30
541
228
783
449
962
508
567
239
354
237
694
225
780
471
976
297
949
23
427
858
939
570
945
658
103
191
645
742
881
304
124
761
341
918
739
997
729
513
959
991
433
520
850
933
687
195
311
シーケンス操作¶
# シーケンス操作
a_list = [23, 22, 32, 12, 31, 30, 3, 35, 26, 36]# choice
print("# random.choice")
for i in range(30):
r = random.choice(a_list)
print(r)# random.choice
31
36
35
26
3
36
23
35
12
3
3
32
30
26
30
22
35
26
22
32
26
3
30
35
23
35
23
31
36
36
# choices
weights = [0, 1, 1, 1, 1, 1, 1, 1, 1, 10]
print("# random.choices")
for i in range(30):
r = random.choices(a_list, weights=weights, k=5)
print(r)# random.choices
[36, 36, 31, 30, 22]
[31, 36, 36, 26, 35]
[36, 35, 36, 36, 36]
[36, 35, 36, 36, 36]
[36, 12, 36, 31, 36]
[36, 35, 36, 36, 26]
[36, 26, 22, 36, 36]
[3, 36, 36, 36, 36]
[31, 32, 36, 36, 36]
[22, 36, 32, 36, 36]
[36, 3, 30, 36, 31]
[3, 31, 30, 36, 36]
[36, 3, 36, 36, 12]
[3, 35, 36, 30, 30]
[36, 36, 36, 26, 36]
[30, 26, 22, 36, 36]
[36, 26, 36, 36, 36]
[36, 36, 36, 22, 36]
[36, 36, 26, 36, 12]
[31, 22, 32, 32, 36]
[3, 12, 36, 12, 36]
[36, 36, 31, 36, 36]
[36, 36, 36, 36, 22]
[31, 32, 36, 36, 36]
[36, 36, 26, 36, 22]
[36, 26, 3, 12, 36]
[36, 36, 12, 26, 30]
[32, 35, 36, 36, 36]
[36, 36, 36, 32, 22]
[12, 12, 36, 30, 3]
シーケンス操作 sample¶
# シーケンス操作 sample
a_list = [23, 22, 32, 12, 31, 30, 3, 35, 26, 36]
# sample
print("# random.sample")
for i in range(30):
r = random.sample(a_list, k=5)
print(r)# random.sample
[26, 31, 30, 32, 3]
[22, 31, 12, 3, 26]
[35, 32, 22, 26, 23]
[3, 22, 36, 35, 26]
[32, 30, 22, 31, 3]
[3, 22, 12, 31, 23]
[31, 30, 36, 35, 3]
[22, 35, 31, 23, 3]
[31, 23, 26, 35, 12]
[22, 23, 12, 36, 31]
[3, 32, 22, 12, 35]
[12, 32, 22, 36, 3]
[26, 31, 36, 30, 12]
[30, 22, 12, 36, 32]
[23, 36, 26, 3, 32]
[36, 30, 35, 12, 32]
[3, 22, 26, 32, 31]
[35, 22, 31, 26, 36]
[26, 35, 30, 32, 22]
[26, 12, 31, 22, 3]
[30, 22, 31, 23, 12]
[22, 30, 12, 35, 32]
[23, 30, 32, 35, 31]
[31, 12, 30, 23, 36]
[36, 22, 12, 26, 23]
[12, 3, 22, 32, 31]
[22, 36, 23, 30, 35]
[31, 30, 35, 12, 22]
[22, 26, 30, 23, 31]
[32, 36, 26, 22, 35]
# シャッフル
print("# random.sample シャッフル")
for i in range(30):
r = random.sample(a_list, k=len(a_list))
print(r)# random.sample シャッフル
[31, 22, 36, 26, 3, 30, 23, 35, 12, 32]
[31, 3, 32, 23, 30, 22, 35, 26, 36, 12]
[26, 31, 35, 3, 36, 12, 23, 22, 32, 30]
[31, 35, 23, 3, 30, 12, 26, 36, 22, 32]
[36, 32, 26, 35, 3, 12, 31, 23, 30, 22]
[35, 23, 32, 31, 36, 3, 12, 30, 26, 22]
[30, 35, 26, 22, 36, 12, 32, 31, 3, 23]
[23, 22, 30, 26, 31, 3, 32, 35, 12, 36]
[32, 35, 22, 3, 23, 31, 12, 30, 36, 26]
[3, 12, 23, 26, 30, 36, 32, 22, 35, 31]
[26, 22, 31, 30, 23, 32, 3, 12, 35, 36]
[12, 3, 26, 36, 22, 32, 35, 23, 30, 31]
[22, 3, 26, 23, 30, 32, 31, 35, 36, 12]
[12, 26, 35, 31, 23, 30, 22, 36, 3, 32]
[31, 32, 12, 26, 3, 36, 30, 35, 22, 23]
[26, 30, 35, 12, 23, 22, 3, 36, 31, 32]
[23, 22, 36, 31, 32, 26, 35, 30, 3, 12]
[3, 26, 30, 36, 31, 32, 23, 12, 22, 35]
[30, 31, 3, 32, 36, 26, 12, 23, 22, 35]
[12, 26, 23, 32, 30, 31, 22, 36, 3, 35]
[32, 35, 12, 36, 31, 23, 26, 3, 22, 30]
[30, 22, 35, 36, 26, 32, 23, 3, 12, 31]
[31, 32, 22, 3, 36, 23, 26, 35, 12, 30]
[32, 35, 31, 12, 22, 3, 23, 30, 26, 36]
[22, 30, 36, 26, 12, 23, 35, 32, 31, 3]
[3, 31, 26, 22, 35, 36, 30, 12, 32, 23]
[22, 26, 30, 12, 31, 35, 23, 3, 36, 32]
[30, 12, 3, 31, 26, 22, 36, 35, 32, 23]
[31, 12, 23, 3, 36, 26, 32, 22, 35, 30]
[12, 22, 32, 3, 31, 36, 26, 35, 30, 23]
連続確率分布¶
# 連続確率分布
# 一様分布
# random
r_uniform_1_list = []
for i in range(100):
r = random.random()
r_uniform_1_list.append(r)
print("一様分布(0~1)", r_uniform_1_list)一様分布(0~1) [0.5265923229048832, 0.13861974163698576, 0.13809799323879335, 0.7157497662356598, 0.36108976833344886, 0.7513763114866316, 0.2404936039137613, 0.7181581423147705, 0.7184769263967773, 0.3054958810525106, 0.10638543387964139, 0.3970078551871341, 0.49236150032733617, 0.09997421469778434, 0.18676126036778584, 0.055343052815480465, 0.5975135715550439, 0.8888761233719161, 0.2165577909596218, 0.03471343587681974, 0.7039235944191828, 0.8149105587896851, 0.9641215867338897, 0.6131789568237019, 0.34244316565189636, 0.8378686180306556, 0.11806710521312225, 0.6926369381896267, 0.0952308492516365, 0.3997057470173988, 0.49502288140217887, 0.377894273032341, 0.16859757880447968, 0.2317173126022275, 0.8201499974998944, 0.46257580479248983, 0.5799327447235099, 0.2119070176161595, 0.7149350587865332, 0.33011725914726364, 0.5936185874860408, 0.9094870627958156, 0.9943934088859884, 0.04621794831314552, 0.797442711928691, 0.8575878253608825, 0.3195744372072056, 0.3831476259821177, 0.5802537596763331, 0.9188402309707125, 0.39992859333804187, 0.8800301687734118, 0.7585605282041756, 0.1522730797062255, 0.9136799203638493, 0.015181052589951283, 0.1451782500468748, 0.6648112128866874, 0.05711968663889244, 0.3794898856741835, 0.12997885852693347, 0.4628892738532562, 0.8399803437546011, 0.9060843513491861, 0.03546964032188504, 0.060851756668864554, 0.8406240353653226, 0.0428147832556115, 0.273590265071345, 0.11743671769283648, 0.09103770695709379, 0.027622889724836064, 0.6375130126648525, 0.7446142679398566, 0.6867713765586763, 0.8456227719182262, 0.6630161884986934, 0.38970192767534384, 0.6310630237160113, 0.9695948083687032, 0.6416033330232526, 0.24309173409213014, 0.0601840957099572, 0.9351659997400953, 0.5904954982942084, 0.3496147426104088, 0.6053527496610309, 0.5602575960634735, 0.5221717727865457, 0.06080464202945668, 0.3532275523761348, 0.4126500229395509, 0.199368340608838, 0.880105231228507, 0.4241197773808294, 0.6623856654024448, 0.7135464494458958, 0.7432830602725053, 0.7211152909126985, 0.7522085016390995]
# uniform
r_uniform_2_list = []
for i in range(100):
r = random.uniform(5, 10)
r_uniform_2_list.append(r)
print("一様分布(5~10)", r_uniform_2_list)一様分布(5~10) [6.257903470753821, 9.882018383464484, 5.7550487689193, 9.593236975496506, 9.272843876037815, 9.260821455899837, 5.26405627418767, 5.456090417219498, 9.06527901116161, 7.3458341323259395, 6.8512659556896285, 9.923437361146787, 5.2005896764482005, 7.657325269028024, 7.216748880753536, 5.641015615143388, 6.975941313929937, 8.53823702405251, 9.41157804601204, 5.123098557316717, 7.622547793015446, 5.451882975176292, 9.001967285775175, 5.428926397183523, 5.170966605085692, 6.921181010386443, 8.6630308725315, 6.566033465237238, 5.650024498265237, 8.972861110425859, 9.034596909475924, 9.27929899386286, 6.518722366320285, 7.124151805094868, 6.226949971271267, 7.7858874650825305, 6.650535833948739, 6.693316679795091, 8.918107092048682, 9.781480800201113, 7.920701596183792, 5.523439650599788, 8.262874663423052, 7.243058589240401, 9.940152785131566, 8.596907475739934, 9.173930532536044, 8.50643130094106, 7.678095028931959, 9.484091959140628, 9.158085323540046, 6.456629438071645, 5.7851594761004375, 6.8517593439384745, 7.605388362862929, 5.4869004491531435, 6.726896432279302, 7.8745283210599, 5.217873092759256, 9.074743382594146, 8.25558522841639, 6.568250857948819, 6.4916049062758425, 6.763080703939102, 6.626443481025715, 8.742568884793766, 7.505284287356263, 7.63064198649913, 5.743782494854583, 9.57209001208863, 6.627864643361668, 6.63782226194106, 5.344230698489165, 9.897057908758978, 7.398489209046295, 9.564423686421119, 9.638086212487417, 9.848760715891707, 9.078146438657564, 9.627216125956563, 9.61144661825029, 9.006838390830925, 5.6729060802134175, 7.618558611429203, 7.8780200650207455, 9.962487639930789, 8.919742749831263, 8.514581083274777, 8.733245184222193, 6.807888820417384, 9.711567789201084, 8.217504448076145, 7.012873042650083, 7.322857886488043, 9.898774636553663, 7.660641987157691, 5.838987679372441, 5.7417749706702494, 8.436210983288738, 7.8138776545750925]
# 正規分布
r_gauss_list = []
for i in range(100):
r = random.gauss(0, 1)
r_gauss_list.append(r)
print("正規分布", r_gauss_list)正規分布 [0.5324375935904874, -0.3530779375782036, -1.3683741456475194, 0.8550825306685746, 0.43469013892015146, 0.14155661457278193, -0.7537828813773354, -0.22263462242443993, 0.6096537715636479, 0.48489767776433806, -0.8248452313401039, -0.9023965058382205, 0.34249730702473463, 0.18409849853991048, 0.8484820527112336, -1.1582125725053838, 0.9214086014444441, 1.7634074969742954, 0.9491413321949335, 0.13112646629094207, 0.9061431298592266, -1.2870797762586406, -0.4434220775745028, 2.0594570576366276, -1.6346161195291298, -1.157718860951095, 0.8228223320168564, -0.6567184327555143, -0.5651032811994183, -1.1194969459729216, 1.682237422911142, -0.6088058499271607, -0.27761469543636275, -1.8130900242341954, 0.7699729664826502, -0.008902331892990233, 0.49864433585385454, 1.5806230586981524, 0.15311291220500362, -1.1919806958263168, -1.0135889886150027, 0.08248995203401366, 1.32075594399839, -1.1988114571728905, -0.24668430582302578, -0.1450480958168968, 0.6574081580897599, -0.8913292640974034, 0.3116957216667728, 0.7838058354177626, -0.037866762244599075, -0.09803420161996611, 0.618793583055987, 0.5814126043641078, 1.2583567956103352, -1.0789656223169575, 1.2304906486400156, -0.22839071358666393, -1.1388952978780043, -0.5532281757233414, -1.2336128003688107, -0.2003717116136265, 1.0340562311015782, -2.2498212769594184, -1.1824327808803452, 0.7682248345284534, -0.30097882883050847, 0.7926079366310617, -1.327513684363958, -0.05272080362551487, -2.606046552863915, -0.8466556917182078, 0.7399065599766491, 1.215481411549136, 1.631408091907619, -0.05608163817060093, -0.8775564670832912, -0.3857148741498997, -1.9181306028911123, 1.3545970556258886, 1.177966182383311, -0.9098131673999311, 1.831576151410436, -1.3528606330079138, 0.5596126918649947, -0.8086752658193437, -1.7382947519171057, 0.3958475718858402, -1.1587062793401812, 1.1936940207218614, -0.8996917306991808, 0.10550901197176209, -0.47897015826125133, 0.1354140612230567, -0.6322787018890805, 0.8204726302534867, 0.6105451410390148, 0.06998263108965841, -0.12692339031175426, 1.9713229451563317]
分布のプロット¶
# 分布のプロット
import matplotlib.pyplot as pltplt.hist(r_gauss_list)
plt.title("Gaussian distribution")
ループからの脱出:break文¶
ループの中断¶
# ループの中断
for i in range(100):
print(i)
if i == 10:
break
print("ループ終了")0
1
2
3
4
5
6
7
8
9
10
ループ終了
ネストされたループの中断¶
# ネストされたループの中断
for i in range(20):
for j in range(20):
print(i, ", ", j)
if j == 5:
break0 , 0
0 , 1
0 , 2
0 , 3
0 , 4
0 , 5
1 , 0
1 , 1
1 , 2
1 , 3
1 , 4
1 , 5
2 , 0
2 , 1
2 , 2
2 , 3
2 , 4
2 , 5
3 , 0
3 , 1
3 , 2
3 , 3
3 , 4
3 , 5
4 , 0
4 , 1
4 , 2
4 , 3
4 , 4
4 , 5
5 , 0
5 , 1
5 , 2
5 , 3
5 , 4
5 , 5
6 , 0
6 , 1
6 , 2
6 , 3
6 , 4
6 , 5
7 , 0
7 , 1
7 , 2
7 , 3
7 , 4
7 , 5
8 , 0
8 , 1
8 , 2
8 , 3
8 , 4
8 , 5
9 , 0
9 , 1
9 , 2
9 , 3
9 , 4
9 , 5
10 , 0
10 , 1
10 , 2
10 , 3
10 , 4
10 , 5
11 , 0
11 , 1
11 , 2
11 , 3
11 , 4
11 , 5
12 , 0
12 , 1
12 , 2
12 , 3
12 , 4
12 , 5
13 , 0
13 , 1
13 , 2
13 , 3
13 , 4
13 , 5
14 , 0
14 , 1
14 , 2
14 , 3
14 , 4
14 , 5
15 , 0
15 , 1
15 , 2
15 , 3
15 , 4
15 , 5
16 , 0
16 , 1
16 , 2
16 , 3
16 , 4
16 , 5
17 , 0
17 , 1
17 , 2
17 , 3
17 , 4
17 , 5
18 , 0
18 , 1
18 , 2
18 , 3
18 , 4
18 , 5
19 , 0
19 , 1
19 , 2
19 , 3
19 , 4
19 , 5