142857の怪
|
|
プログラム・ソースリスト
1:計算に用いたマクロ・アセンブラ ソースリスト
jun_asm.htm (テキストファイル→Word→HTML保存)
(2002.10.18UP 2003.08.08修正)
asm_List (PDFファイル adbe Acrobat Reader
が必要です。)
(2002.10.18UP)
2:NBASICによる算出プログラム
NBASICによる計算アルゴリズムの変遷 (2004.08.08)
(NBASICで作成したプログラムのソースリストが発掘できました。
ただしプリントアウトからの転記なので転記ミスがあるかもしれません。
あるかもしれない・・・あるだろう・・・いや、絶対有る!)
|
|
|
142857 とは?
「142857」という数値は、
その桁数(6)までの数を掛けても、数字の順序が変わらないという、実に不思議な性質を持っています。
142857×1=142857
142857×2=285714
142857×3=428571
142857×4=571428
142857×5=714285
142857×6=857142
この数値を知ったのは、昭和47〜8年頃、夜勤の先輩から教えて貰った訳ですが、
それ以来頭の隅に残っていました。
Top へ戻る
他に無いか、探す。
それから1年、ある社内教育で眠くて、眠くて...
ふとこの数を思いだし、眠気覚ましに他には無いかと試行錯誤にしているうちに、
ふとひらめいて、次の16桁の数値を発見しました。
その数値は、
「05882 35294 11764 7」
暇な方はお試しください。(掛ける数は桁数まで、つまり1〜16です。)
これは感激しましたね。この時は...
更にと探すと、その講義の時間中に、
更に18桁「05263 15789 47368 421」が見つかりました。
こうなると面白くなり、次の講義も、その次の日も講義のメモをとる振りをしながら、電卓+筆算で究極の暇潰しです。
22桁「04347 82608 69565 21739 13」
28桁「03448 27586 20689 65517 24137 931」
この2つが見つかりました。
手計算はこの辺りで限界ですね。
(何、馬鹿なことやってんだろ...)
Top へ戻る
8Bitパソコンで...Nbasic
それから数年後せっかく忘れかけていたのに、かのPC8001が発売されてしまったのです。
(NEC製、8bit機です。CPUはZ80、クロックは4MHzだったか8MHzだったか、メモリーは16K、それでも画期的な出来事でした。)
早速、NBASICで計算してみました。
Ver 1 59桁計算するのに49分57秒掛かりました。
(手計算で確認するのに、1週間...)
01694 91525 42372 88135 59322 03389 83050 84745 76271 18644
06779 661
更に計算アルゴリズムとプログラムを見直し
Ver 2 59桁にて30分24秒
Ver 3 59桁にて 3分12秒
(下記、108桁では11分11秒)
00917 43119 26605 50458 71559 63302 75229 35779 81651 37614
67889 90825 68807 33944 95412 84403 66972 47706 42201 83486
23853 211
この飛躍的な時間短縮の背景には三奇人とうたわれた、K君との短縮競争によるものです。
(残念ながら彼との競争は、常に大差・僅差で破れ、とうとう一度も勝つことができなかったです。)
しかし、Nbasicではこの辺りが限界でした。
(それでも計算アルゴリズムだけで10分の1以下にできるとは思っていませんでしたが...)
Top へ戻る
8Bitパソコンで...GAMEコンパイラ
ここまで来るともう意地と根性です。
ちょうどこの頃K君が、このGAMEという言語をディスクベースのコンパイラ化してオリジナルのDOSを作ったというので、次はNbasicをあきらめ、このGAMEコンパイラで挑戦すると一挙に更に20分の1近くまで短縮してしまいました。
(GAMEとは、Cライクな言語で整数のみで処理する計算や、名前の通りゲームを作るのには最適な言語でした。
また、このオリジナルDOSもCPMライクなDOSですが、コンパクトで使い勝手も良いものでした。)
Ver 5 59桁では10秒
108桁では33秒、
桁数も更に延ばして1018桁で、45分31秒です。
00098 13542 68891 06967 61530 91265 94700
68694 79882 23748
77330 71638 86162 90480 86359 17566
24141
31501 47203 14033
36604 51422 96368 98920 51030 42198
23356
23159 96074 58292
44357 21295 38763 49362 11972 52208
04710
50049 06771 34445
53483 80765 45632 97350 34347 39941
11874
38665 35819 43081
45240 43179 58783 12070 65750 73601
57016
68302 25711 48184
49460 25515 21099 11678 11579 98037
29146
22178 60647 69381
74681 05986 26104 02355 25024 53385
67222
76741 90382 72816
48675 17173 69970 55937 19332 67909
71540
72620 21589 79391
56035 32875 36800 78508 34151 12855
74092
24730 12757 60549
55839 05789 99018 64573 11089 30323
84690
87340 52993 13052
01177 62512 26692 83611 38370 95191
36408
24337 58586 84985
27968 59666 33954 85770 36310 10794
89695
78017 66437 68400
39254 17075 56427 87046 12365 06378
80274
77919 52894 99509
32286 55544 65161 92345 43670 26496
56526
00588 81256 13346
41805 69185 47595 68204 12168 79293
42492
63984 29833 16977
42885 18155 05397 44847 89008 83218
84200
19627 08537 78213
93523 06182 53189 40137 38959 76447
49754
66143 27772 32580
96172 71835 13248 28263 00294 40628
06673
20902 84592 73797
84102 06084 39646 71246 31992 14916
58488
71442 59077 52698
72423 94504 41609 421 |
Top へ戻る
32bitパソコンで...(マクロアセンブラ)(4446桁の数値のみ...)
暇を持て余している方、本当に1から4446までの数を掛けても数字の順序が変わらないか、ぜひお試しください。
4446 桁 06h26m29s000ms
00022 48706 99347 87497 18911 62581 51562
85136 04677 31054
64357 99415 33618 16955 25073 08297
72880
59365 86462 78389
92579 26692 15201 25927 59163 48099
84259
05104 56487 51967
61861 92939 06004 04767 25882 61749
49404
09264 67281 31324
48841 91589 83584 43894 76051 27051
94513
15493 59118 50685
85563 30110 18664 26804 58736 22666
96649
42657 97166 62918
82167 75354 17135 14729 03080 72858
10658
87114 90892 73667
64110 63638 40791 54486 17045 19901
05689
22869 35012 36788
84641 33123 45401 39419 83359 56824
82572
52080 05396 89678
43489 99325 38790 19563 75084 32651
22554
53114 45918 59680
68360 69260 17539 91454 91342 47807 51068
13582 19024 06116
48302 22621 99235 43962 22172 25095
57004
72228 46863 05374
40971 44142 11828 19878 56982 23521
47515
17877 22059 81560
60265 34742 52304 92466 83157 18461
88441
64605 35192 26444
79424 33100 96694 40071 95862 37913
19991
00517 20260 85001
12435 34967 39374 85945 58129 07578
14256
80233 86552 73217
89970 76680 90847 76253 65414 88644
02968
29323 13919 49628
96334 60760 06296 37958 17404 99212
95255
22824 37598 38093
09646 95300 20238 36294 13087 47470
20463
23364 06566 22442
09579 49179 22194 73802 56352 59725
65774
67955 92534 29278
16505 50933 21340 22936 81133 34832 47132
89858 33145 94108
38767 70856 75736 45154 03642 90532
94355
74544 63683 38205
53181 92039 57724 30852 25995 05284
46143
46750 61839 44232
06656 17270 06970 99167 97841 24128
62604
00269 84483 92174
49966 26939 50978 18754 21632 56127
72655
72295 92984 03418
03463 00876 99572 74567 12390 37553
40679
10951 20305 82415
11131 09961 77198 11108 61254 77850
23611
42343 15268 72048
57207 10591 40993 92849 11176 07375
75893
86102 99078 03013
26737 12615 24623 34157 85923 09422
08230
26759 61322 23971
21655 04834 72003 59793 11895 65999
55025
86013 04250 05621
76748 36968 74297 27906 45378 90712 84011
69327 63660 89498
53834 04542 38812 68270 74432 20148
41466
15695 97481 44816
73038 00314 81897 90870 24960 64762
76141
21879 91904 65482
34765 01011 91814 70654 37373 51023
16168
20328 31122 10478
97458 96109 73690 12817 62986 28288
73397
79626 71463 90825
27546 66067 01146 84056 66741 62356
64492
91657 29705 41938
38542 83786 82257 70182 14526 64717
78727
23184 16910 27659
09601 97886 21542 61299 75264 22307
17337
53091 97211 60332
80863 50348 54958 39892 06206 43130
20013
49224 19608 72498
31346 97548 90937 71081 62806 38632
78614
79649 20170 90173
15043 84978 63728 35619 51877 67033 95547
56015 29120 75556
55498 08859 90555 43062 73892 51180
57117
15763 43602 42860
35529 57049 69642 45558 80368 78794
69305
14953 90150 66336
85630 76231 16707 89296 15471 10411
51337
98066 11198 56082
75241 73600 17989 65594 78299 97751
29300
65212 50281 08837
41848 43714 86395 32268 94535 64200
58466
38183 04474 92691
70227 11940 63413 53721 61007 42073
30784
79874 07240 83651
90015 74094 89543 51248 03238 13807
06093
99595 23274 11738
25050 59590 73532 71868 67551 15808
41016
41556 10523 94872
94805 48684 50640 88149 31414 43669
88981
33573 19541 26377
33303 35057 34202 83337 08117 83224 64582
86485 27096 91927
14189 34112 88509 10726 33235 88936
36159
20845 51382 95480
09894 31077 13064 98763 21115 35866
87654
59860 58016 64043
17517 42747 91994 60310 32156 51000
67461
20980 43624 91567
34877 44546 88554 08140 31931 63930
73982
46008 54508 65752
19248 93186 41780 97593 88351 69777
37800
76456 03777 82774
90442 99527 77153 13694 62559 02855
85788
17180 12143 01776
47852 48482 12277 94018 43939 73465
25747
69507 53316 84281
53811 55835 39464 80773 55520 57566
89903
30559 92804 13762
08680 00899 48279 73914 99887 56465
03260
62514 05441 87092
42185 74319 76613 44726 78210 02923 31909
15223 74634 58511
35597 03170 67686 08050 37103 66539
23993
70362 04182 59500
78704 74477 17562 40161 90690 35304
69979
76163 70586 91252
52979 53676 63593 43377 55790 42050
82077
80526 19743 64740
27434 22532 04407 46570 72183 49449
06678
65977 06318 86665
16752 86710 14166 85405 89161 23229
14324
26354 84596 35709
46705 64425 45536 31661 79446 81807
96042
27569 14774 00494
71553 85653 24938 16055 76793 34382
72993
02900 83202 15875
87137 39599 73015 51607 82550 03373
06049
02181 24578 36743
87227 34427 70407 01596 58196 53699
12300
42725 43287 60962
44659 32089 04879 69417 58488 86890 03822
80188 89138 74522
14976 38857 65684 73127 95142 79289
40859
00607 15088 82392
62424 10613 89700 92196 98673 26287
38475
37665 84214 07690
57791 76973 24038 67776 02878 34495
16527
99640 20688 10434
00044 97413 98695 74994 37823 25163
03125
70272 09354 62109
28715 98830 67236 33910 50146 16595
45761
18731 72925 56779
85158 53384 30402 51855 18326 96199
68518
10209 12975 03935
23723 85878 12008 09534 51765 23498
98808
18529 34562 62648
97683 83179 67168 87789 52102 54103
89026
30987 18237 01371
71126 60220 37328 53609 17472 45333
93298
85315 94333 25837
64335 50708 34270 29458 06161 45716 21317
74229 81785 47335
28221 27276 81583 08972 34090 39802
11378
45738 70024 73577
69282 66246 90802 78839 66719 13649
65145
04160 10793 79356
86979 98650 77580 39127 50168 65302
45109
06228 91837 19361
36721 38520 35079 82909 82684 95615
02136
27164 38048 12232
96604 45243 98470 87924 44344 50191
14009
44456 93726 10748
81942 88284 23656 39757 13964 47042
95030
35754 44119 63121
20530 69485 04609 84933 66314 36923
76883
29210 70384 52889
58848 66201 93388 80143 91724 75826
39982
01034 40521 7
|
Top へ戻る
142857(ぐるぐる数?),その他の面白い性質と算出した方法
142857(ぐるぐる数:下段のリンクにある長崎総合大学HP、カフェ・プロトマヤの「魔法数ぐるぐる」を借用して命名)には、1から6までの数値を掛けても数字の順番が変わらないもという性質のほか、色々と面白い性質を持っています。
(また、これらの性質は、算出した全ての数値でも同じ事を確認しています。)
(1).算出したぐるぐる数は全て偶数桁であり、前半の桁と後半の桁を足すと、999・・・・となる。
6桁 142857 → 142+857=999
16桁 05882 35294 11764
7 → 05882352+94117647=99999999
28桁 03448 27586 20689 65517 24137 931
→ 03448275862068+96551724137931=99999999999999 |
また、この性質は右の図のように、ぐるぐる数で円周を描けば、その対向する数値どおしを足すと、全てにおいて
9 となる事を意味しています。
|

|
(2).よく知られている事ですが、142857に7を掛けると999999となります。
つまり、桁数+1の値を掛けると、999・・・・となる。
6桁 142857 * 7 = 99999 9
16桁 05882 35294 11764
7 *17 =99999 99999 999999
28桁 03448 27586 20689 65517 24137 931
*29=99999 99999 99999 99999 99999 999
|
試行錯誤の末、手計算で 142857以外のぐるぐる数を見つけたきっかけはこれでした。
逆に考えると、ぐるぐる数は、
999・・・ / (9の続く桁数) となるのではないか?
n=2 9/2=4.5 割り切れずNG → 割り切る為に、nの値は偶数ではあり得ない。
n=3 99/3=3 3*2=6 で、NG
n=5 9999/5=1999.8
nの下一桁に[5]はあり得ない。(絶対9を割り切れない)
n=7 999999/7=142857
当然成立 Good!!
nの値は、素数になるのでは?
・・・・以下、
n=13 99999 99999 33 / 13 =76923 07692 30
あれ・・・? 何となく怪しげな匂いが・・・
769230 ? ・・・・ 769+230=999 ?? でも結果は NG
そして、
n=17 99999 99999 99999
9 /17 =05882 35294 11764 7
05882352+94117647=99999999 Good!!
1から16までを掛けて見ると・・・ Good!!! 見つけましたぁ!!
計算式であらわすと、
ぐるぐる数候補 = (10^(n−1)-1)/n となるのかな・・・?
更に半信半疑で手計算していくと、
n=17、19、23、29 が見つかっていきました。
まあ、算出したきっかけは、直感を頼りにしただけの力ずくです・・・。
もっとスマートな解法は、
カフェ・プロトマヤ (長崎総合科学大学HP)にヒントがあります!!
楽しそうなホームページにリンクさせて貰いました!!(2002.07.20)
あそびをせんとや (パズル・ゲーム・ブロックなどをいろいろ紹介されています
!!)
|
|
Top へ戻る