パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

2020年までにプログラムをマスターさせる計画を1から見直す。

2019-07-03 | プログラムをマスター計画2020

2020年までにプログラムをマスターさせる計画を1から見直してみます。

 

 

<問題 中学3年級>

無限多重根号で答えが整数値になりそうなものと、その無限多重根号内で繰り返される数値(2から10000まで範囲)を表示してください。

(ただし根号の繰り返し計算は無限ではなく30回として、その答えが整数値との誤差が0.0001内ならその整数値を答えとみなします)

 

 

補足説明

根号(ルート)  sqrt()=平方根 は中学3年で学習するルート

無限多重根号 sqrt(2 + sqrt(2 + sqrt(2 + sqrt(2 + sqrt(2 + ...) ) ) )) こんな感じで無限に続きます。

 

 

解答の一部 100までなら

2 2
3 6
4 12
5 20
6 30
7 42
8 56
9 72
10 90

 

 

答えは余談の後

<余談>

「2020年までにプログラムマスターさせる計画」

 

目的としては、

銀行のシステムを難なく作るとか、金融業の儲かる仕組みを作れる人材とかではない。

SEを何年もしてきて、外国のいいかげんなツールにはうんざりしているので、

ダメなツール、OSを全部作り変えるような人材の出発点にほんの少し寄与する です。

 

 

初心者向けと思われるプログラムの本を2冊読んでみました。

 

1冊目、「プログラミングとは?」といったタイトル(わからないように変えてます)

全体を5分割するとその最後の1でおそらくいちばん簡単な遊びのフロチャートを説明して終わり。

うんちくで終わっています。(とは?だからいいのか。)

 

2冊目、「さっくり プログラミング」としておきます。

最初の3分の1はコンピュータ(ハード)とプログラム言語の歴史で終わる

そしてようやく変数。コンピュータ内にどのように保存されるか?

2進数で画像データまでいきなりハードルが高い。3つの言語を駆使して

文字列の配列、ポインタなんかも説明している。

クラスの説明について全体の5分の1を費やしている。

(この本ここまで流し読みでそんなに悪くない。説明が何の言語なのか、わかりにくい)

最後全体の10分の1でリンクとソートのプログラムでした。

これを理解できていればSEになれそうです。

 

 

<答え>

Python3の例

 

2 2
3 6
4 12
5 20
6 30
7 42
8 56
9 72
10 90
11 110
12 132
13 156
14 182
15 210
16 240
17 272
18 306
19 342
20 380
21 420
22 462
23 506
24 552
25 600
26 650
27 702
28 756
29 812
30 870
31 930
32 992
33 1056
34 1122
35 1190
36 1260
37 1332
38 1406
39 1482
40 1560
41 1640
42 1722
43 1806
44 1892
45 1980
46 2070
47 2162
48 2256
49 2352
50 2450
51 2550
52 2652
53 2756
54 2862
55 2970
56 3080
57 3192
58 3306
59 3422
60 3540
61 3660
62 3782
63 3906
64 4032
65 4160
66 4290
67 4422
68 4556
69 4692
70 4830
71 4970
72 5112
73 5256
74 5402
75 5550
76 5700
77 5852
78 6006
79 6162
80 6320
81 6480
82 6642
83 6806
84 6972
85 7140
86 7310
87 7482
88 7656
89 7832
90 8010
91 8190
92 8372
93 8556
94 8742
95 8930
96 9120
97 9312
98 9506
99 9702
100 9900
 
2以上の全ての整数値 無限多重根号で表現できるのでしょうか?

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。