タグ

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

  • Rubyのグラフライブラリ(gnuplot)で砲台ゲームを実装しよう - Line 1: Error: Invalid Blog('by Esehara' )

    今日の風景 寿司の電子工作 はじめに 今は廃刊してしまった、昔懐しい『ベーシックマガジン』という雑誌には、大抵簡単なゲームのコードが載っていた。俺を含めたパソコン少年は、そのコードを見ながらパチパチとコードを打っていたわけだが、そういったサンプルコードリストの一つに、大抵は「砲台ゲーム」というものが存在していた。 仕様としては、ある範囲が的になっており、角度と強さを指定し、投射線を描写する。的の範囲に入っていたら的中となり、的の外になっていたら外れということになる。 大抵、このゲームに関しては、30代から40代にBASICを触っていたおじさんであるならば、何処かで見たことがあると思うのだけれども、舞台がWebになった現代には、このような「砲台ゲーム」を作るといったようなサンプルを見ることは殆どなくなった。 で、前回にRubyからgnuplotを触るエントリを書いたわけだけれど、「あれ、グラ

    Rubyのグラフライブラリ(gnuplot)で砲台ゲームを実装しよう - Line 1: Error: Invalid Blog('by Esehara' )
  • Jupyter Notebook + RISE でスライド作ってトークしてきたというお話 - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 Cookdo麻婆豆腐と手作り麻婆豆腐の自炊戦争が行なわれてから十数年たつが、正直Cookdoの麻婆豆腐の味は忘れてしまった。とはいえ、あらためてCookdoで作る気にはならんなー、ということで、丸善屋の麻婆豆腐の素を手にいれて作った。 メリットとしては、素には挽肉も入っているので、挽肉を炒めるという工程、同様に量にあわせて豆板醤を混ぜあわせるといった行為をしなくてもいいという部分にある。しかし、辛口を買ってきたつもりが、意外と辛くなく、がっかりするということもある。辛めの麻婆豆腐が好きであるならば、自炊したほうがいいのかもしれないな、というのが現状の結論である。 概要 Jupyter Notebookという、ブラウザ上で使えるREPL環境がある。これを使うと、RubyPythonのコード結果を書き残しながら操作できるという利点がある。またこのJupyter Notebookに

    Jupyter Notebook + RISE でスライド作ってトークしてきたというお話 - Line 1: Error: Invalid Blog('by Esehara' )
  • SKIコンビネーター入門以前(ついでに、PythonでSKIコンビネーター学習用ライブラリを書いた) - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 博多のソウルフードです。 サンポー品 焼豚ラーメン 94g×12個 出版社/メーカー: サンポー品メディア: 品&飲料この商品を含むブログを見る 概要 ラムダ計算を学習する上において、コンビネーターというものが登場する。これは、変数が全て束縛変数となっているラムダ項で定義できるものを指す。その中で特に重要なものとして、SKIコンビネーターが存在している。このSKIだけで、基的なラムダ計算を実装することができる。そこで、今回そのSKIコンビネーターを勉強するためのライブラリを作るのに失敗したので、その経緯を説明する。 難解関数型プログラミング言語 プログラミング言語界隈には、難解プログラミング言語というものが存在する。この難解プログラミング言語は、実用を目指したものではなく、遊びか、あるいは理論的な側面に基づいたプログラミング言語である。その中で有名でかつ、実装しやすいも

    SKIコンビネーター入門以前(ついでに、PythonでSKIコンビネーター学習用ライブラリを書いた) - Line 1: Error: Invalid Blog('by Esehara' )
  • コラッツの問題を並列計算するコマンドをGolangで書く練習をする - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 カマンベールミルフィーユ鍋。 コラッツの問題 コラッツの予問題というとピンとこないかもしれないが、別名「3n+1問題」と言われたら、何処かで聞いたことがある人もいるんじゃないんだろうか。内容自体は簡単で、「任意の整数が与えられたとき、その整数が偶数ならば2で割り、奇数なら3倍に1を足す。そうしてできた数を先のルールに従って、同じように数を作る。こりを繰り返し、1になったら終了する」というもので、これが停止するかどうか、という話である。。 どんなアルゴリズムであっても、それが停止することが保証されていなければ、実際に使うときに非常に困ったことになる。このコラッツの問題が直接なんの役に立つのかは置いておくとして、このような単純なアルゴリズムでさえ、停止するかどうかの証明は難しいらしいのだが、この説明を聞いたら、直感的には「これは何となく止まりそうだ」と思うんじゃないかと思う。実際、

    コラッツの問題を並列計算するコマンドをGolangで書く練習をする - Line 1: Error: Invalid Blog('by Esehara' )
  • フロイドの循環検出法とポラード・ロー法による素数判定 - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 自宅超会議の様子です。クローズドソース。あと汚ない。 概要 ある数の因数を見つけ出すためには、ポラード・ロー法という方法がある。このポラード・ロー法は、フロイドの循環検出法と呼ばれる、循環を見つける方法が関連してくる。今回は、簡単なリストを使い、この循環法を確認したのちに、ポラード・ロー法について説明をする。 はじめに 最近の日課は素数について調べることになっているのだけれど、yuguiさんのサイトにて『UBASICによるコンピュータ整数論』というが紹介されていて、「へー」なんで思っていたりした。その中に、ロー法と呼ばれる奴が紹介されていたので実装してみるといいのかなと思って実装することにしてみた。以下はそのメモである。 循環する合同式 という式における任意の数pについて観察してみよう。例えば、53の変化の一覧を出したい場合、次のようにコードが書ける。 def modulo_

    フロイドの循環検出法とポラード・ロー法による素数判定 - Line 1: Error: Invalid Blog('by Esehara' )
  • 『プログラミング言語の基礎概念』第一章の復習と、自分が躓いたところをメモする - Line 1: Error: Invalid Blog('by Esehara' )

    近況 神様あなたは 何でも知っていて 心悪しき人を打ち負かすんだろう でも真夏の太陽は 罪を溶かして 見えないが確かに 背中にそれを焼き付ける ―― eastern youth『夏の日の午後』 要旨 今月の最後に『プログラミング言語の基礎概念』第二章の読書会があるので、それに向けて復習をする。意味論を記述するために、最少の推論規則から判断を導くための、導出システムを考える。これらには、ペアノ自然数を利用したりしている。 はじめに こないだ、『プログラミング言語の基礎概念』の第一章の読書会に潜り込んできて、そういえば今月の最後にも第二章の奴が始まるので、せっかく惰性で参加するのだし、惰性で読書メモをとっておくのも、あとで勉強する人にとっては有益なのではないかと思ったので、メモしておく。 文 最初のひっかかりポイント: n plus Z is nはどうやって導くの? 何らかの判断を形式化する

    『プログラミング言語の基礎概念』第一章の復習と、自分が躓いたところをメモする - Line 1: Error: Invalid Blog('by Esehara' )
  • 1