タグ

ブックマーク / bugrammer.hateblo.jp (8)

  • 3の累乗の差と和であらゆる自然数を表現してみる(ついでに、その測り方を考える) - Line 1: Error: Invalid Blog('by Esehara' )

    今日の風景 すたみな太郎にて誕生日会でした はじめに 『算数の文化史』を読んでいたら、「あらゆる自然数は2の累乗の和としてあらわすことができる」ということが紹介されていた。証明はともかくとして、これは直感的にわかるものだ。だが、もう一つ「あらゆる自然数は3の累乗の和と差であらわすことができる」というのがある。これは直感的にはちょっとよくわからない。 例えば、5であるならば、3の累乗のリストは「9、3、1」となる。この場合、「9」から「3」と「1」を引くことで、5の数を表現できる。このように、全ての自然数は3の累乗の和と差で表現できるという。当然、このことは数学的帰納法かなにかで証明するのが正しいのかもしれないけれど、その証明はとりあえず追いておくとして、そのような3の累乗の和と差で、あらゆる自然数を表現するようなプログラムを書いてみるのが、今回の記事の目的となる。 仕様決め まず、仕様を決

    3の累乗の差と和であらゆる自然数を表現してみる(ついでに、その測り方を考える) - Line 1: Error: Invalid Blog('by Esehara' )
    vanbraam
    vanbraam 2016/10/02
    1が(3^0を使わずに)表現できる事が確定したら,"あらゆる自然数"が表現できる事も確定するのではないのだろうか?自分が問題を勘違いしてるのだろうか?
  • 運気を上げるために魔方陣を作る(初級編) - Line 1: Error: Invalid Blog('by Esehara' )

    今日の寿司 中身が気になる御歳頃。 はじめに 最近運気が悪く、悪夢も良くみるようになったので、これは邪気を払う必要がある。なので、そういうのに使えそうなものと言えば何か考えたら、魔方陣ではないか、ということを考えていた。 昔の夢は何だったか思い出すと、科学者か魔法使いになりたかった思い出があり、極まったプログラマというのはWizardと呼ばれる。さすがに、自分がそのレベルに達しているとは思えないが、どうせだし、魔法陣くらいは作れるようになりたいと思ったので、今回のエントリを書く。以下、『魔方陣の世界』という参考書(エントリの最後に記述する)を元に書く。 魔方陣とはなにか とはいえ、魔方陣とは何かについて、最初に書いておかないといけない。魔方陣とは、1から始まる連続した異なる自然数を碁盤の目状に並べて、それぞれの列、それぞれの行、そして対角線の数の和が一緒であるものを指す。具体的には、下のよ

    運気を上げるために魔方陣を作る(初級編) - Line 1: Error: Invalid Blog('by Esehara' )
  • ギャンブラーの錯覚は本当に錯覚なのかどうかをRubyで検証する - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 べものに困ったときは、近くの肉屋でハムカツを買ってくればいい[要出典]。 お話 あるところに三人のギャンブラーがいた。この三人は仲が良く、今度カジノに繰りだそうということになった。そのカジノには、三つで一組のスロット台が存在していて、その三つのどれかが当たるような仕組みとなっていた。また、このカジノの売りは、それぞれのスロットを完全に操作せず、ランダムに当たりが出るようにしているということである。 ところで、ギャンブルにはオカルトというか、ある種の信念めいたものが、ギャンブラーにつきまとう。このギャンブラー三人は、それぞれ違った信念を持ちあわせていた。 まず一人目のギャンブラーは、「それぞれの台が完全にランダムに当たりが選ばれるとするならば、次にどの台を選択するかということを悩んでも仕方がない。なので、直感を信じて、台に座るのが正しい」 しかし、二人目のギャンブラーはこの意見

    ギャンブラーの錯覚は本当に錯覚なのかどうかをRubyで検証する - Line 1: Error: Invalid Blog('by Esehara' )
    vanbraam
    vanbraam 2016/08/03
    このコードだと,LeastGuessPlayerとMostGuessPlayerは,あるセットの開始から現在までのマシンの勝利数で次のマシンを選ぶのであって,"x連勝"しているマシンを選ぶのではない様に見える
  • Rubyで書いていたら破滅したので、Lisp/Racket で書きなおしたお話 (『プログラミング言語の基礎概念』について) - Line 1: Error: Invalid Blog('by Esehara' )

    今日のアート mograg garageで行われたKYOTAROさんという方が描かれた絵です。 手帳にも描いてもらいました。ありがとうございます!! 概要 タイトルが釣りっぽくなって申しわけない(だったらやらなきゃいいじゃん……)。 普段は練習にRubyを利用しており、あるコードを規則に従ってステップを作成するプログラムを作っていたところ、とてもではないが、メンテすることが不可能になってしまった。なので、Lispの方言の一つであるところのRacketを使ったところ、サクサクと実装できるようになった。なぜこの違いが生まれてしまったのか、できるだけプログラミング言語の特性に依存せずに、この違いを語ろうと思う。 はじめに つい最近、知人と出あったところ、『プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)』が話題にのぼった。このテキストはオンラインによる問題集が付属しており、知人に

    Rubyで書いていたら破滅したので、Lisp/Racket で書きなおしたお話 (『プログラミング言語の基礎概念』について) - Line 1: Error: Invalid Blog('by Esehara' )
    vanbraam
    vanbraam 2016/06/03
    問題がLisp(S式)向き過ぎる印象
  • プログラムにおける「関数」とは何かについて、自分なりのまとめ - Line 1: Error: Invalid Blog('by Esehara' )

    近況 自宅サーバーが起動しなくなったため、中身に保管してある電子書籍PDFが取り出せず、大量の知性が失われている。 要旨 以前に「関数型プログラミングの初心者」に向けて質問したときに、そもそも関数とはなにかについてわからなかったという質問があった。自分も、具体的に関数とはなにか、というと説明に困ることがある。そこで、今回のブログでは「関数」とは何かについて、自分なりにまとめたことを書く。 はじめに 知り合いの技術者は、「実は関数の考え方について、一年間くらい馴染めなかった」と言っていた。現在では、開発をバリバリやっているような人であり、自分も尊敬しているのだけれど、そういう人でも「関数」という考え方について、実はそれほど馴染めなかったということを聞いてビックリしたりしていた。 とはいえ、そういう風に「そうなのか」と納得している俺も、実際のところ、では「関数」とは何か、というのを説明できる

    vanbraam
    vanbraam 2015/08/14
    HowとWhatの話かと思ったら少し違った;"文字を出力するといった場合に、出力するという過程が欲しいのであって、その結果が欲しいわけではない","return 0;をするほうが行儀がいいのかもしれないが〜voidでも正常に動く"
  • 『マンガでわかる!関数型プログラミング』という漫画を連載することになるようです - Line 1: Error: Invalid Blog('by Esehara' )

    近況 ふとした瞬間に虚しくなることがある いきさつ 今年、秀和システムから関数型プログラミングに関するが出て、良くも悪くも、そのが注目を集めることになってしまいました。そんな中で色々な人が反応していましたし、自分もこのようなかたちで感想を書きました。 一方で、このようなを書かれるくらいであるならば、自分で真っ当なを書けばいいわけだし、技術書を書くことなんて、そんな敷居の高いことではないというカウンターもあり、個人的にはそれも最もだなあ、という印象がありました。その中で自分なりに関数型プログラミングについて理解したことを元にQiitaに駄文をアップしたりしていました。間違ってたら、誰かが訂正してくれるだろうし、そのほうが自分にとって勉強になるだろう、と思うので。 ですが、「関数型プログラミング」というのは「なんだか難しい」という印象を覚えるのも事実のようです。実際に、最新の『Soft

    『マンガでわかる!関数型プログラミング』という漫画を連載することになるようです - Line 1: Error: Invalid Blog('by Esehara' )
    vanbraam
    vanbraam 2015/07/13
    "技術書を書くことなんて、そんな敷居の高いことではないというカウンター"<こういう事を言う人は凄い人か全くわかってない人かの両極端な印象;結城氏の言葉じゃないんだろうけど,誰なんだろう
  • ミスをエンジニアリングすることについて、例えばなぜ自動化するのかについて−−『「事務ミス」をナメるな!』を読んで - Line 1: Error: Invalid Blog('by Esehara' )

    はじめに 今更いうことではないのだけれど、自分は凡ミスの多い人間だという自覚がある。例えば、このブログを書いていたとしても、結構な割合で「てにをは」を間違えることが多いし、また予定等を勘違いして、実は期日を過ぎていたということもある。 そういうこともあってか、「こういう単純な凡ミスを無くす」ことが出来ないかなと思って、を手に取ったのだけど、いい意味で裏切られた。いい意味、というのは、そののタイトルに反して、要するに「ミスをエンジニアリングするということがどういうことか」ということが書かれていたからだ。このはタイトルで純粋に損しているとは思う。 個人において「ミスをする」ということはどういうことか 大抵、人間が何かをミスする場合、そのミスというのは無能であるか、あるいはうっかりといったような「能力の欠如」として捉えることが多い。しかし、書の場合、それよりかは、むしろ「人間の知恵が働き

    ミスをエンジニアリングすることについて、例えばなぜ自動化するのかについて−−『「事務ミス」をナメるな!』を読んで - Line 1: Error: Invalid Blog('by Esehara' )
    vanbraam
    vanbraam 2015/03/29
    "「本当に熟練を極めた人は、むしろ慣れすぎないように注意しています(p.134)」"<なるほど.慣れてOKな物は自動化可能だと思う;ミスの改善については,状態を可視化する,という方法も有効そう;s/免許書/免許証/g
  • 優秀なエンジニアがいなくてもやっていくために - Line 1: Error: Invalid Blog('by Esehara' )

    ITの世界には「銀の弾丸は存在しない」という合言葉がある。これはどうやら狼やドラキュラを退治するときの道具が「銀の弾」らしく、古典的な名著であり、未だに参照され続けている『人月の神話』というに収められている論文から来ているらしい。なぜ、「銀の弾丸は存在しない」と言われるのかというと、ある諸問題に関して一気に片付けられるような、そういう解決策は無い。少なくともそれらの問題に関しては泥臭く、忍耐を持って接しないといけないという話だ。川を綺麗にするためには根気よく缶を拾ったりしなければいけないのと似たようなものだろう。 元のドラキュラの話を知らないので、Wikipediaで聞きかじりに語るのだが、そもそも「銀の弾丸」といったところで、その「銀の弾丸」を使う存在というものがいる。ドラキュラの場合、それが「ヘルシング教授」である。ヘルシングといえば平野耕太の漫画を思い出すが、どうやら原作のドラキュ

    優秀なエンジニアがいなくてもやっていくために - Line 1: Error: Invalid Blog('by Esehara' )
    vanbraam
    vanbraam 2013/11/25
    似たテーマの記事が同時期に http://mcaf.ee/gw4t8 ;書かれている対策(テスト書く,デプロイ自動化,作業共有)はagile思想的には全て正しそう.逆にどんなにprogrammingの生産性が高くても,これらができない人は"優秀"ではないと思う
  • 1