読者です 読者をやめる 読者になる 読者になる

Mae向きなブログ

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

Ruby

平成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…

ミラー–ラビン素数判定法

『応用代数学入門―暗号・符号・バーコードの仕組みが分かる』の第7章「フェルマーの定理とオイラーの定理」では素数の判定法としてミラーの判定法、ラビンの確率的判定法が紹介されています。難しくて中々理解できずにいますが、息抜きにRubyのPrime#prime?…

nを法としたベキ乗

練習問題7.2 問2 アルゴリズム7.2を用いてを計算しなさい。 解答 4 126 0 16 63 1 16 2 31 1 32 4 15 1 1 16 7 1 16 2 3 1 32 4 1 1 1 16 0 0 問4 数式処理システムを用いて次の値を計算しなさい。 解答 応用代数学入門―暗号・符号・バーコードの仕組みが分…

中国剰余定理

練習問題6.2 問2 連立合同式 に、中国剰余定理アルゴリズムを用いて手計算で解きなさい。 解答 よって、 問4 連立合同式 を、数理処理システムを用いて解きなさい。 解答 応用代数学入門―暗号・符号・バーコードの仕組みが分かる作者: ダレル・W.ハーディ,キ…

ブロック暗号

練習問題4.4 問2 ブロック暗号(以下)を用いて暗号文"VX XC ZD HG WC RJ AR"が生成されたと仮定します。このメッセージを復号しなさい。 解答 よって 平文は、doubleohsevenx(007)だったんですね。 応用代数学入門―暗号・符号・バーコードの仕組みが分かる作…

拡張されたユークリッドの互除法

練習問題3.3 問2 と、整数とでとなるものを、後退代入を用いて求めなさい。 解答 とする。このとき、 となるので であり、よって となる。 問4 数式処理システムを用いることにより、整数で となるものを求めなさい。 解答 よって、 となる。 応用代数学入門…

平成28年度 大学入試センター試験 情報関係基礎

平成28年度大学入試センター試験の情報関係基礎を解いてみました。第3問は実際に作ってみるといいと思うのですが、掲載されている指示書(擬似言語)では配列の添字が1から始まっているので注意が必要です。以下では、添字0はダミーとして扱っています。 受験…

Rubyのしくみ -Ruby Under a Microscope-

世の中にはたくさんのプログラミング言語が存在しています。学生時代に初めてPascalに触れてから今まで、何種類かの言語を触ってはあきらめを繰り返してきましたが、自分にとってRubyはなぜか学習し続けたい言語になっています。 本書は、Rubyのしくみを知り…

ウィンターカップ2015 ベスト16と平均身長

ウインターカップ2015も大会4日目。今日で男子がベスト8、女子がベスト4まで出揃う予定のようです。開幕前に出場校を平均身長で並べ替えてみたのですが、ベスト16に入ったチームが分かりやすいように色付けてみました。平均身長で勝ち負けが決まるわけではな…

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

昨日は、ウィンターカップ2015出場校を平均身長で並べ替えましたが、今日は出場選手の中で身長の高い選手をピックアップするスクリプトを作ってみました。 男子は190cm以上の選手、女子は180cm以上の選手です。 winter_cup2015_2.rb 男子 身長(cm) 氏名 210 …

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

年末年始は、大きなスポーツイベントが目白押しですが、子供がバスケットボールに熱中しているので、特にウィンターカップは注目しています。そのウィンターカップ2015開幕まであと4日となってきました。「出場校 | JX-ENEOSウインターカップ2015 平成27年度…

NBA選手の年俸視覚化

NBAについて調べていたら、面白いサイトに行き着きました。 Ruby: Visualizing NBA Player Salaries 2013 - 2018 データを視覚化するというのは、データを理解する上で有効な手段だと思います。自分でも同じようなグラフを作ってみました。 nba.rb

なるほどUnixプロセス ― Rubyで学ぶUnixの基礎

はじめてUNIXに触ったのは、もう25年位前(大学生時代)になります。高校を卒業するまでコンピュータというものに触ったことがなかったので、「コンピュータはUNIXで動くもの」、「コンピュータを使う = UNIXを使う」という感覚でした。大学卒業後は仕事でWin…

最長共通部分列問題 (Longest Common Subsequence)

最初、最長共通部分列問題と聞いたときは、部分文字列の最長を求める問題だと思ったのですが、そうではないんですね。参考サイトを見ているうちに、なんとか題意とこの問題の意義のようなものが見えるようになってきました。 理解を深めるために、最長共通部…

行列を使ってフィボナッチ数列

これまで何度となくフィボナッチ数列については話題にしてきましたが、 「フィボナッチ数 - Wikipedia」によると、フィボナッチ数列の漸化式は次のように行列表現できるそうです。 ゆえに ということで、行列を用いてフィボナッチ数列を計算してみることにし…

数学ガールの秘密ノート/微分を追いかけて

今回は微分がテーマでした。位置、速度、加速度、パスカルの三角形、二項定理、複利計算などを通して、楽しく微分について学習(復習)できました。まだ微分を習っていない中高生や微分に苦手意識を持っている方、微分を学び直したい方などにお薦めだと思いま…

最長重複文字列問題

『珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造』の15章2節で紹介されている「最長重複文字列問題」をRubyを使って解いてみました。 「最長重複文字列問題」とは、文字列の中からもっとも長い重複する文字列を見つけるという問題で、 "miss…

myipcalcコマンドの作成

「ネットワーク管理の基本Tips:「192.168.0.100/24」のネットワークアドレスを即答するには? ipcalcコマンド - @IT 」で初めてipcalcコマンドを知りました。最近、ネットワーク業務に疎遠になっているので、復習を兼ねて自作コマンドを作ってみました。 m…

つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

「ハッカーになろう (How To Become A Hacker)」の中で、 LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。たとえ、実際には LISP そのものをあま…

Interactive Programming in Cの簡易化

「Interactive Programming in C « null program」では、実行中のプログラムを止めることなく、読み込んだ共有ライブラリに変更があったとき、ロードし直す方法が、ライフゲームを題材にして説明してあります。実際、やってみましたが、ライフゲームの実行中…

2014年、読んだ本のリスト

読書した本は、その都度、このHatena::Diaryにまとめるようにしているのですが、2014年も残り少なくなり、果たして自分が1年間でどれくらい本を読んだのか調べてみたくなりました。実は昨日の記事(ISBN-10とISBN-13の相互変換)は、これを調べるために必要だ…

ISBN-10とISBN-13の相互変換

コマンドライン上で、手軽にISBNから本の名前を調べたいというところから始まったのですが、「ISBN - Wikipedia」を見ると、ISBN-13とISBN-10は相互変換できるんですね。簡単そうなので、実際、やってみました。 ISBN-13 => ISBN-10への変換例 9784480064707…

Googleカレンダーに予定をRubyで登録する

Googleカレンダー、非常に便利で、仕事やプライベートの予定を入力して、自宅のMac、職場のWindows PC、iPhone、iPadで便利に活用しています。 いつもは仕事の予定を1つずつWebから入力していたのですが、google-api-clientというgemを使うとRubyから登録で…

mrubyのインストール

せっかくのRaspberry Piが埃をかぶっているので、久しぶりにssh経由でログインして、mrubyをインストールしてみました。 Arch Linuxを使っているので、参考サイトのapt-getではなく、pacmanで依存するパッケージをインストールしていきます。 手順 $ sudo pa…

マンガでわかる統計学

マンガで統計学の勉強ができるなんてすばらしいと思います。最初から難しい本を読むのとでは理解力に差が出るのではないでしょうか。 第6章の「2変数の関連を調べよう!」で単相関係数の話が出てきます。早速,何か調べてみたいと思ったので, 「宅習ノート…

プロのためのLinuxシステム・10年効く技術

最近、Linuxを使うことは減ってきたのですが、 どんどん新しい技術が生まれるこの世界で10年効く技術とは何だろうと思ったこと、 そしてそれを身に付けてみたいと思い 読んでみました。 読みながら試してみたことを以下にまとめておきます。 bigram.plをRuby…

動画ファイル名の変更

おととい、昨日にハンディカムで撮影した動画をいつものようにPCに取り込んだつもりが、なぜか以下のようにファイル名が3桁の連番で保存されてしまいました。 これだと、ファイル名が重なる可能性大なので、日時をベースとしたファイル名に変更しました。Rub…

組込Ruby「mruby」のすべて

いつかmrubyに取り組むときのために読んでみました。まつもとゆきひろ直伝 組込Ruby「mruby」のすべて 総集編作者: まつもとゆきひろ出版社/メーカー: 日経BP社発売日: 2014/01/31メディア: Kindle版この商品を含むブログを見る