Mae向きなブログ

Mae向きな日記のブログ版。ようやくこちらに移行してきました。

Ruby

目盛りの消えた定規

「目盛りの消えた定規(Sparse ruler)」という面白い問題があるんですね。 例えば、6cmの定規の場合、1cmと4cmの所に目盛りがありさせすれば、1cmから6cmまでを計測することができるというものです。詳しくは参考サイトで説明されているのですが、自分の理解…

平成29年度春季応用情報午後問3

平成29年度春期 応用情報技術者試験(AP)の午後問題3は幅優先探索、深さ優先探索、枝刈りに関する問題でした。 2017h29h_ap_pm_qs.pdf h29h_ap_pm3.rb 実行結果 $ ruby h29h_ap_pm3.rb #<struct Status total=99, selectedNumbers=[10, 34, 55], nextIndex=4> #<struct Status total=99, selectedNumbers=[55, 34, 10], nextIndex=0></struct></struct>

平成29年度春季基本情報午後問8

平成29年度春季 基本情報技術者試験(FE)の午後問題8は学生時代から何度となく出会ってきたダイクストラ法の問題でした。 2017h29h_fe_pm_qs.pdf h29h_fe_pm8.rb Rubyだともっと効率よく書けそうですが、できるだけ疑似言語に近づけて書いてみました。 実行結…

平成29年度秋季応用情報午後問3

平成29年度秋期 応用情報技術者試験(AP)の午後問題3はナップザック問題でした。動的計画法を学習する際のテッパン問題ですね。 2017h29a_ap_pm_qs.pdf h29a_ap_pm3.rb 実行結果 $ ruby h29a_ap_pm3.rb C Bを選んだとき 価値合計 = 15

平成21年度秋期応用情報午後問2

平成21年度秋期 応用情報技術者試験(AP)の午後問題2は文字列照合に関する問題でした。 2009h21a_ap_pm_qs.pdf 文字列照合といったら、遥か昔、学生時代に 単純に比較していくアルゴリズム クヌース–モリス–プラット法 - Wikipedia ボイヤー-ムーア文字列検索…

平成23年度特別試験応用情報午後問2

平成23年度特別試験 応用情報技術者試験(AP)の午後問題2は集計表(CSV)をHTMLに変換して出力するプログラムに関する問題でした。 2011h23tokubetsu_ap_pm_qs.pdf h23tokubetsu_ap_pm2.rb input.csv 東京都,千代田店,23500 東京都,中央店,33500 東京都,港店,18…

平成25年度春季応用情報午後問2

平成25年度春季 応用情報技術者試験(AP)の午後問題2は逆ポーランド記法に関する問題でした。 2013h25h_ap_pm_qs.pdf h25h_ap_pm2.rb 実行結果 $ ruby h25h_ap_pm2.rb 1 2 3 * + 2 3 + 4 * 参考 Problem 93 - Mae向きなブログ 逆ポーランド記法電卓 - Mae向き…

平成26年度春季応用情報午後問3

平成26年度春季 応用情報技術者試験(AP)の午後問題3はフロイドの循環検出法の問題でした。循環小数の循環節を検出する問題…。なんか以前出会ったことがあるなと過去を振り返ってみると、Project EulerのProblem 26でした。そのときは、割った余りをハッシュ…

平成26年度秋季応用情報午後問3

平成26年度秋季 応用情報技術者試験(AP)の午後問題3はマージソートの問題でした。今までいくつかのプログラミング言語でクイックソートをはじめ何種類かのソートアルゴリズムを作ってはいますが、よく考えてみるとマージソートを作ったことはなかったような…

平成27年度春季応用情報午後問3

平成27年度春季 応用情報技術者試験(AP)の午後問題3はデータ圧縮の前処理として用いられるBlock-sorting(ブロックソート)に関する問題でした。学生時代(20年以上前)、データ圧縮について少し勉強したことがあるのですが、Block-sortingというアルゴリズムに…

平成27年度秋季応用情報午後問3

平成27年度秋季 応用情報技術者試験(AP)の午後問題3は2分探索木に関する問題でした。 2015h27a_ap_pm_qs.pdf データを8個挿入後の2分探索木とデータを2個削除した後の2分探索木を図示するようにしています。Gvizを使いましたが、左の子は左気味に右の子は右…

平成29年度春季応用情報午後問3

平成29年度春期 応用情報技術者試験(AP)の午後問題3を実際に入力して試してみました。 2017h29h_ap_pm_qs.pdf h29_ap_pm3.rb 実行例 $ ruby h29_ap_pm3.rb 99

イオンモール 総賃貸面積でランキング

地元の新聞に以下のような記事が載っていました。増床後の総賃貸面積は九州内のモールで2番目の広さになるようです。そう書かれると、九州内で一番広いところや日本で一番広いところが知りたくなります。 ということで、調べてみました。 イオンモール 総賃…

Zellerの公式

[改訂第3版]を購入して以来、かなり久しぶりに『[改訂第7版]LaTeX2ε美文書作成入門』を購入してみました。第3版のときには、第4章「パッケージと自前の命令」のところは斜め読みでしたが、今回は丁寧に読み進めてみました。p75にZellerの公式を使って日付…

レーベンシュタイン距離

レーベンシュタイン距離については、単語も中身も知っていたつもりなんですが、「文字列の違いを評価しよう | CodeIQ」に取り組んでみて、実は全く分かってなかったということが分かりました。 問題に取り組む前に、レーベンシュタイン距離(Wikipedia)で紹介…

火車

我が家の本棚にずっと眠っていた本。定価が857円の頃に購入していたようです。ボリュームのある本なので、少し読んでは挫折してというのを繰り返して、ようやく読み終えることができました。分水嶺を越えると一気に読むことができると思うのですが、そこを超…

TSVの指定カラムの数値を手軽に棒グラフにして分かりやすくする

最近、コンピュータをワープロとしてしか使ってなかったので、リハビリを兼ねて 【Perl】TSVの指定カラムの数値を手軽に棒グラフにして分かりやすくする をRubyで書き直してみました。 tsv2bargraph.pl.rb 入力データ(2009.tsv): 空白のところはタブです。 …

2016年、読んだ本のリスト

銃口〈上〉 (小学館文庫) 銃口〈下〉 (小学館文庫) 高校生のための東大授業ライブ ガクモンの宇宙 応用代数学入門―暗号・符号・バーコードの仕組みが分かる 人工知能は人間を超えるか (角川EPUB選書) 松下村塾 (講談社学術文庫) 元素周期表で世界はすべ…

ウインターカップ2016 男女ベスト8の平均身長

ウインターカップ2016も、今日時点で男子はベスト8、女子はベスト4が出そろいました。 先日、「ウインターカップ2016出場校を平均身長で並べ替え」というエントリを書いたのですが、男女ベスト8に残っているチームを目立つ(赤太字)ようにしてみると以下のよ…

ウインターカップ2016出場選手を高い身長で並べ替え

昨年に引き続き、今年も「出場校 | JX-ENEOSウインターカップ2016 平成28年度 第47回全国高等学校バスケットボール選抜優勝大会」で公開されているデータを元に出場選手の中で身長の高い選手をピックアップしてみました。 男子は190cm以上の選手、女子は180c…

ウインターカップ2016出場校を平均身長で並べ替え

今年もウィンターカップが楽しみな時期になってきました。昨年も求めてみたのですが、今年も「出場校 | JX-ENEOSウインターカップ2016 平成28年度 第47回全国高等学校バスケットボール選抜優勝大会」で公開されているデータを元に出場校を平均身長順に並べて…

勾配法

『ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装』、4章「ニューラルネットワークの学習」まで読み終えました。Pythonに触れるのは初めてですが、順調に読み進めることができています。 自分の理解度を定着させるために、以下の問…

ev3dev_ruby gemを読んで

先日、EV3をRubyで制御する方法について少し学習したのですが、ev3dev_ruby gemを使うとRubyを使ってEV3を制御できるので面白いですね。一通りサンプルファイルを読み終えたので、gemファイルがどのように作られているのか興味があったので調べてみました。 …

EV3をRubyで制御する

自宅にLEGO Mindstorms EV3がやってきて、しばらく遊んでみようと思ったのですが、どうもEV3ソフトウェアに興味を持ち続けることができず、使いこなす域まで達することができませんでした。自分に馴染みのプログラミング言語でEV3を制御することができればと…

RubyでSVMをつかう [rb-libsvm] Mac編

サポートベクターマシン(SVM)については、まだ言葉しか知らない段階ですが、『RubyでSVMをつかう [rb-libsvm] - schima.hatenablog.com』をMac上で実行できる環境を作って試してみました。 導入 libsvm, rb-libsvmのインストール $ brew install libsvm $ ge…

Raspberry Pi接続のサーボモータ制御

Raspberry Piに接続したサーボモータを制御する実験をやってみました。 使用したのは、 Ruby WiringPi/WiringPi-Ruby: Version 2.x of Gordon Henderson's Arduino-like WiringPi GPIO functions, wrapped up for Ruby. です。 「左に60度、右に60度回転」と…

Raspberry Pi接続のLEDをブラウザからON/OFF制御

Raspberry Piに接続したLEDをブラウザからON/OFFする実験をやってみました。 使用したのは、 Ruby Sinatra WiringPi/WiringPi-Ruby: Version 2.x of Gordon Henderson's Arduino-like WiringPi GPIO functions, wrapped up for Ruby. です。 準備 以下のよう…

鍵交換システム

前回は、数字を用いての暗号化、復号化に関する練習問題でしたが、今回は文字列(メッセージ)の暗号化、復号化の練習問題でした。現実社会で使われている暗号技術に、少しかもしれませんが近づけているような気がして嬉しいですね。 練習問題8.3 問3 公開鍵暗…

RSA暗号系、電子署名

暗号技術に最初に興味を持ったのは、学生時代を終えようとしていた頃(20年近く前)だったと思います。当時はMew*1+PGPというソフトウェアを使いこなすだけで精一杯で、暗号の理論・仕組みについては全く理解できていませんでした。 のちに『暗号技術入門-秘密…

べき乗暗号

練習問題7.5 問2 数式処理システムを用いて30桁の素数を生成して、ベキ乗暗号を試しなさい。 解答 平文をとする。但し 30桁の素数を準備する。 暗号化鍵を選ぶ*1。但しgcd 暗号文の計算。 復号鍵の計算。 平文の復元。 $ ruby modcrypt.rb (1) x = 192828282…