pythonで「エラトステネスの篩」を書く
目的:簡単なアルゴリズムを徹底的に追求する予定で、とりあえず作ったもの。だから今後改良版を作っていく予定。「追求」っていのうはコメントの書き方、コードの書き方、計算の仕方を「うまい具合」にしていくってこと。
# coding: utf-8 # エラトステネスの篩 # 指定された整数以下の全ての素数を発見するための単純なアルゴリズム # https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83%86%E3%83%8D%E3%82%B9%E3%81%AE%E7%AF%A9 import math # 整数指定 Nini = int(input()) # 探索リスト Search_list = range(2,Nini+1) # Search_list上で素数以外を先頭から-1にするループ # headに先頭値を設定 # headで割り切れるものを-1に設定 # 最後に-1ではないものが素数 for i in xrange(0,Nini-2): if Search_list[i] != -1: head = Search_list[i] elif Search_list[i] == -1: continue for j in xrange(0,Nini-1): if Search_list[j] == head: continue elif Search_list[j] % head == 0: Search_list[j] = -1 if head > math.sqrt(Nini): break # Search_list上の-1以外をansに追加 ans = [] for x in xrange(0,Nini-1): if Search_list[x]!=-1: ans.append(Search_list[x]) print ans
必要になったときに勉強するほうが効率よくね?
【結論】「遅延評価勉強」っていうらしい
名前あるのか・・・
前々からずっと思ってた。IT技術系の勉強しているときに「なんとなく興味があるから勉強しているとき」と「必要だから勉強しているとき」では明らかに後者のほうが効率が良い。
かと言って、「必要だから勉強する」ような勉強方法だと、なんだか時間を無駄に過ごしてしまう可能性がある気がする。
「なんとなく興味があるから勉強する」ときが肩の力をめっちゃ抜いて勉強して、「必要だから勉強する」ときは真剣に勉強すればいいかな
参考
メモ
「10年後に生き残る最強の勉強術」
10年後に生き残る最強の勉強術 - 鈴木秀明 - Google ブックス
の1988ページ目に「本当にその知識が必要になったときには、そのことについてじっくり勉強している暇などない可能性が高い」という文がある。
確かになって感じ。
【TEDメモ】”ダニエル・ピンク 「やる気に関する驚きの科学」”
【結論】どうしようもなくね?
報酬があると視野が狭くなるらしい。単純な問題に対しての報酬は効果的らしい。
20世紀は単純な仕事が一般的で、その仕事に対しての報酬は機能するらしい。
21世紀では複雑な問題が多く、周りを見渡して視野を広くする必要がある。しかし、報酬は視野を狭めてしまうらしい。いつの日か「ホンマでっかテレビ」でも外からの動機づけ(お金、名誉)は害になりうるみたいなことを言ってたけど、多分この動画と同じ内容だと思う。
最後に3つのまとめを言ってますが、その3つ目に次のことを言ってます。
高いパフォーマンスの秘訣は、報酬と罰ではなく、見えない内的な意欲にあります。
自分自身のためにやるという意欲、それが重要なことだからやるという意欲、大事なのは私たちがこのことを知 っているということです。
科学はそれを確認しただけです。
科学知識とビジネスの慣行の間のこのミスマッチを正せば、21世紀的な動機付けの考え方を採用すれば、怠惰で危険でイデオロギー的なアメとムチを脱却すれば、私達は会社を強くし、多くのロウソクの問題を解き、そしておそらくは世界を変えることができるのです。
でも、報酬がないと生活できないから報酬は必要じゃね?