パーソナルブログメモリ

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

抽象的の意味を間違えていた話

2021-06-09 | プログラムをマスター計画2021

レオンハルト・オイラー wikipediaの紹介だと

18世紀の数学界の中心となり、続く19世紀の厳密化・抽象化時代の礎を築いた とあります。

厳密化が重要というのはBOTプログラムなどを作っているとよくわかるのですが抽象化とは はて?

 

間違えていたのは抽象化があいまいなものと思っていた点(実際はそういう意味もある)

知らなかったのは物事の本質を抽出するといった意味もある所。

 

 

 

下の問題、私は何度も抽象化に失敗しています。

まず第一に四角の中の数字縦横斜めで同じ数になると勝手に勘違いしたこと

次に数字が横に1から並んでいくと勘違いしたこと

最後に螺旋を作って、斜めに計算しようとしたこと(1400x1400クラスのmilky wayだと50msでは無理かも)

説明文に紹介されている。2つの図形をしばらく眺めていてふと法則に気が付きました。

計算を少なく解くための本質は螺旋を作って斜めに足していくのではなく

四隅は等間隔で増えているので四角の頂点をマトリョーシカ風に足していくでした。

 

しかし、まだ抽象化には先があって、他の方の解答では2行で解いている方もいます。

1行はn=int(input()) 演算は1行 すごい人ゴロゴロいます。

 

 

ここ数日、買い物では紛らわしい違う規格のものとか、ちょこちょこ買ってしまったりしています。

日常生活でも本質を探していけたらなと思っています。

 

今日は真夏日、少し風通しのいい部屋に、12年前のmacbook 引っ張り出してコーディングしてみました。

OSはubuntuは18.04


最新の画像もっと見る

コメントを投稿

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