kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

2018-07-01から1ヶ月間の記事一覧

Pythonのグローバル変数は遅いらしい

最後の決め手はメインルーチンを_main関数にしたってとこなんだけど そんなんで速くなるの? ALDS1_3_C: Doubly Linked List - kb84tkhrのブログ 詳しい人に聞いてみたところ、ローカル変数の方が速いよ、とのこと たしかにmainに入れる前はグローバル変数だ…

『失敗図鑑』

こんなムスメに「失敗しても大丈夫」と思わせるにはどうしたらいいか、と考える日々 で、育て方だったのか遺伝なのか、ウチの娘もそっくり同じ 勉強にしろ遊びにしろ、ちょっと難しいかも、と思うと手を付けようとしません あーここは自分に似たな、難しいこ…

ALDS1_3_C 続き

解説は明日読もう 読んで早々、 また、リストの先頭を指す特別なノードを設置することによって実装を 簡略化することができます。 このノードは「番兵」と呼ばれるもので あっ 言われてみると!

ALDS1_3_C: Doubly Linked List

リストの実装となるとポインタっぽいからC++で書いたほうがいいのかなーと 思ってましたがやってみたらPythonでごく自然に書けました ただの先入観でした しかし意外と例外を細かく考える必要があるなあ この問題だとまだ操作が限られてるけどフルに実装する…

『まんがでわかるニーチェ』

まんがでわかるニーチェ (まんがでわかるシリーズ) 作者: 白取春彦,nev 出版社/メーカー: 宝島社 発売日: 2016/07/15 メディア: 単行本 この商品を含むブログを見る 宝島社のまんがでわかるシリーズには大変お世話になっておりますこれまでに7つの習慣、D・…

ALDS1_3_B: Queue

キューはどんなふうに実装するのかな 配列をリングにするのか 線形リストを使うか たぶん配列

ALDS1_3_A: Stack

appendとpopでやるのは反則としておこう どこまでならゆるされるだろうか、と考えて配列とスタックポインタで書いてみた Pythonで「配列」って言うのは変かな でも気持ちは配列

イディオム

昨日ほかの人の回答を見たりしてよく使うパターンをいくつも発見したので 軽くここでまとめ 入力 1行をひとつの文字列として読み取る >>> input() aaa bbb ccc 'aaa bbb ccc'

ALDS1_2_D: Shell Sort

ソート自体は擬似コードが書いてあるので移すだけ 挿入ソートだと遠く離れた要素を入れ替えたくてもひとつずつずらしていくので 入れ替えの数が増えてしまいますがシェルソートでは間隔を空けて入れ替えるので 入れ替えが少なくてすむという寸法 自分で考え…

ALDS1_2_C: Stable Sort

問題だけ読んで、正解にしてから解説を読む、ってやったんですが 安定性の判断ってとこでけっこう悩みました まず全部、値でグループを作ってから判定することにしました C++だとどんなライブラリになるんだろうか、 今どきライブラリにもないってことはない…

『哲学の謎』

哲学の謎 (講談社現代新書) 作者: 野矢茂樹 出版社/メーカー: 講談社 発売日: 1996/01/19 メディア: 新書 購入: 21人 クリック: 195回 この商品を含むブログ (111件) を見る 野矢先生は「この人の書く本なら」と思っている数少ない人のうちのひとり自分の目…

PCAD: ALDS1_1_D、ALDS1_1_A

ALDS1_1_D: Maximum Profit 相場を見ていつ買っていつ売ると最大の利益が得られるかって問題3乗を求めるだけのこの前のを除けば初の課題なわりには要求がややこしいこういうのはちゃんと問題を読み取れるかがキモかもしれない C++で書こうと思ってたけどpyth…

『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』

PaizaでS取れなかったのがちょっと尾を引いており、突然ですが そっちの勉強をすることにしました このままたくさん問題を解いていくだけでも少しずつ力はついていくだろうし 運が良ければS取れるかもしれないんですが それだと運がよかっただけかどうかわか…

Reasoned Schemer (33) わり算

わり算も引き算と同様、関係プログラミング式のやり方は取れないので独自に実装 筆算式にやっています

PAIZAのスキルチェックやってみた

ふと思い立ってPAIZAのスキルチェック受けてみました 言語でSchemeも選べるんですがベータだしライブラリとか考えるとあんまり有利じゃない気がするのでPython3にしてみましたどっちみちよく知ってるわけじゃないのですこし勉強してJavaScriptでもいいかなと…

Reasoned Schemer (32) かけ算

かけ算はすんなり

『ジョブ理論』

『イノベーションのジレンマ』のクリステンセン先生の本 ジョブ理論 イノベーションを予測可能にする消費のメカニズム (ビジネスリーダー1万人が選ぶベストビジネス書トップポイント大賞第2位! ハーパーコリンズ・ノンフィクション) 作者: クレイトン M クリ…

TOEIC

今日は10年以上ぶりにTOEIC受けてきましたのでお勉強の時間はなしただの日記です 前回受けたのが、TOEICが変わるっていうんで変わる前に一度受けておこうって時期で確か2006年ごろでしたかね

Reasoned Schemer (31) 引き算 続き

(Reasoned Schemerから少し離れてしまっている) でどっちでやろうか full-adderとかの方が自分にとって新しいのでそっちで書いてみよう 全部反対にするだけだろうし と思った私があさはかでした

『塾歴社会』

ムスメは今年(小4)からサピックスに通ってますとりあえず近所にあるし有名っぽいからいいんじゃない、くらいの認識でテスト受けてみたら入れたから行ってる、くらいな感じだったんですがどうもなんか思ってる以上にすごいところっぽいなと

読書メモを小さな習慣に変換する

昔から、読書メモってやつに憧れがありまして、って読書メモだけに限らずなんですけど 本を読んでもほとんど忘れてるんですよね好きな本を何度も楽しく読めるのはそのせいかもしれませんが

Reasoned Schemer (30) 引き算

次は引き算ですがこれはそのままとはいきません 関係プログラミングだから足し算ができれば自動的に引き算もできてましたが(効率とかどうなのかな) 普通は引き算は引き算で書かないと 引き算を書くには、足し算と同じようなことを書く方法もありますが、 …

Reasoned Schemer (29) 普通に書いてみる

これって関係プログラミングで書いてて何がいいんだろう、ということで 普通に書いてみて、比較しようと思います まずは足し算まで

Reasoned Schemer (28) わり算 終わり

で、ふたつに分けたらわり算がどうなるというのか わり算短くなったなーと思ったら (defrel (/o n m q r) (conde ((== '() q) (== r n) (

Reasoned Schemer (28) わり算 続き

次はlの右側の0がなくなる例でやってみよう もう少し圧縮した書き方で s -> (splito '(0 0 1 0 1) '(1) l h) 4 -> (splito '(0 1 0 1) '() '() h), l=() 2 -> h=(1 0 1), l=() 6 -> (splito '(0 1 0 1) '() ^l h), l=(0 . ^l), (pos ^l) 2 -> h=(1 0 1), ^l=…

Reasoned Schemer (28) わり算 続き

splitoは数をふたつの部分に分けてくれるわけですが splitoは他にどんなことをしますか? splitoは関係ですから、下位ビットのlと上位ビットのhを結合してnを作ることができます。rの長さを使ってパディングビットを詰めます。 こういうの聞くと関係に名前を…

図書の貸出履歴の話

どこぞの小学校で子供たちが借りた本のデータを記録・管理してたっていうのが話題になってますね第一印象、ああがんばってるな、と思ったんですけどネットでは図書館がやってはならないことって話が盛り上がってます中には「絶対悪」とまで言う人も でもそれ…

Reasoned Schemer (27) わり算 続き

でどうやるかなんですけど どうやったらもっといい/oを定義して、66コマめのrun*が値を持つようにすることができるでしょうか? 数がビットのリストで表されているので、リストを「head」と「rest」のふたつの部分に分けて問題を分割してみてはどうでしょう…

Reasoned Schemer (26) わり算 続き

三つ目のconde行は十分一般的に見えますが、なぜはじめの二つのconde行が必要なんですか? これでいいんじゃないの、って話 (defrel (/o n m q r) (fresh (mq) (

Reasoned Schemer (25) わり算 続き

で本文を読みすすめてみる n < m、n = m、n > m の3つの場合に分けている それならそういうことがわかりやすいように書くべきなんではないだろうか 素のSchemeで言えば (cond ((< n m) ...) ((= n m) ...) ((> n m) ...)) って書いてあれば一目瞭然なんだから