Mae向きなブログ

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

Ruby

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…