或るプログラマの開発日記

日々の勉強したことの備忘録なんかに使っていきます

2017-01-01から1年間の記事一覧

2017年7月の振り返り

どうも、パイソンです。いつの間にか、7月も今日でおしまい。毎月の如く月の振り返りをしてみます。 7月の反省 一応、7月もRailsの勉強などを進めていく予定でした。osishow3.hateblo.jpそして月初に書いてた通り、ブログもサボりグセをつけない用にしましょ…

2017年7月の目標

どうも、パイソンです。本日から7月。いやー、もう1年の折り返し地点ですなー。感覚的には、年明けを迎えたのがつい最近のことに思えてしまうのですが、時が過ぎてしまうのは本当にあっという間だという感じがします。それはさておき、7月の目標をサクッと書…

ブログ3ヶ月目の振り返り

どうも、パイソンです。早いもので、ブログ開始からもう3ヶ月目。毎月の如く今月の振り返りをします。 6月の目標 一応、6月はRailsの勉強を目標にしておりました。 Railsの勉強 とりあえず、月内になんとかRailsの環境構築とHerokuへの公開は出来るようにな…

herokuでRailsアプリを動かしてみた

どうも、パイソンです。osishow3.hateblo.jp前回の記事では、Windows環境で簡単なRailsアプリを動作させたときの手順を解説しました。今回の記事は、作成したRailsアプリをHerokuで公開した時の手順のメモになります。 Herokuアカウントの作成 先ずはHeroku…

Windows環境でRailsを動かしてみた

どうも、パイソンです。とりあえず今月からRailsの勉強を始めようかということで、いろんなWebページやら本などに目を通しておりました。そして、この度やっとこさ自分のPCでRailsアプリを動作させる所までできたので環境設定手順をここにメモしておこうと思…

CodeIQ 「タンジェント・フラクション」問題解答コード

CodeIQ問題の解答公開記事です。 codeiq.jp 問題の概要 今回は以下のような問題でした。 を満たす実数の組について、がすべて単位分数(分母が自然数、分子が 1 )となるものを考えます。(の単位はラジアン) 正の実数に対し、の範囲で題意を満たすの組の個数を…

2017年6月の目標

どうも、パイソンです。気が付けば、もう6月も7日目。先月は月中から月末にかけて記事を書いてきた跳ね返りか、1週間程ブログを放置しておりました。しかし、このままずるずるとしてると今月は何もしないまま過ぎ去ってしまいそうなので、ここいらで6月の目…

ブログ開始から2ヶ月経過しました

どうも、パイソンです。今日でブログ開始からちょうど2ヶ月目。先月に引き続きこれまでの振り返りをします。 5月の目標 5月も目標なるものを立てておりました。 rubyでなんか作る 記事更新は10記事程度を目処に それぞれどんな感じだったか振り返ります。 ru…

Rubyで素数判定の繰り返しを効率化してみた話

はじめに とあるプログラミング問題に取り組んでる時、連続する数をそれぞれ素数か否かの判断を結構な回数繰り返す処理をRubyで書いていたのですが、もう少し処理速度が上がらんかなーと試行錯誤した結果、処理が効率化できたー。というお話です。 問題 実際…

Rubyで素因数分解を行う

素因数分解をC言語やJavaで行う場合、自力で小さい素数から順に割っていく方法なんかが取られるかと思いますが、Rubyでは標準モジュールに素因数分解の処理が用意されていたのでメモ。 Primeクラスのprime_divisionメソッド Rubyでは、このメソッド一発で素…

最大公約数、最小公倍数の求め方/ユーグリットの互除法

今回もアルゴリズムに関して学んだ知識のメモ。ユーグリットの互除法について調べてみました。 ユーグリットの互除法とは 最大公約数を求める手法です。 ユークリッドの互除法(ユークリッドのごじょほう、英: Euclidean Algorithm)は、2 つの自然数の最大…

エラトステネスのふるいを実装してみる

アルゴリズムに関する知識も自分の中にストックしておきたいということで、今回は「エラトステネスのふるい」について調査したものをメモ。 エラトステネスのふるいとは 素数の一覧を簡易的に求める手法です。 エラトステネスの篩 (エラトステネスのふるい、…

Rubyのinject/reduceメソッドに関するメモ

つい最近までRubyのinjectやらreduceが何してるか分からんかったので調査したことをメモ。 inject/reduceメソッド injectメソッドは、ブロックを使って繰り返し計算を行うのに使います。ブロックに順に「要素1、要素2」、「ブロックの前回の戻り値、要素3」…

Rubyで多重ループを抜ける方法

Rubyの大域脱出に関するメモ。ネストが深いループから何かの条件で一気に抜けたい場合、Rubyではcatch-throwを使うのが適切なようです。 書き方 以下が大域脱出のサンプル。如何にもサンプルの為のサンプルという感じですが、ネストしたループから抜けている…

Rubyのヒアドキュメントを使ってみる

Rubyのヒアドキュメントに関するメモ。文字列を扱うちょっとしたプログラムで結構使えます。 ヒアドキュメントとは 普通の文字列リテラルはデリミタ(", ', ` など)で囲まれた 文字列ですが、ヒアドキュメントは `リテラルです。 https://docs.ruby-lang.org/…

CodeIQ 「ロンリー・ルーク」問題の解答コード公開

久々の投稿になります。 今回はCodeIQの問題の解答コードを公開します。codeiq.jp 問題 今回の問題の概要です。 自然数 n, k に対し、縦横 n×n のマス目にチェスのルークの駒を k 個配置します。このとき、自身から見て上下方向・左右方向のいずれにも他の駒…

2017年5月の目標

どうも、パイソンです。 本日から5月。先月に引き続き月間の目標でも立ててみようかなーと思います。 とはいえ、先月は毎日更新を目指すとか息巻いてみたものの結局挫折したんで、今月は普通に達成出来る感じのものにしようかと。(^^; というわけで、立てて…

ブログ開始から1カ月経過しました

どうも、パイソンです。 ブログ開始からちょうど1カ月経過しましたので、これまでの振り返りをしてみようと思います。 月初の目標 一応、今月の初めに2点ほど目標を立てておりました。 1.毎日更新を目指す事 2.rubyの勉強を頑張る事。 んで、1の目標ですが、…

Rubyにはインクリメント演算子(++)が無い

Rubyを書いてて、いつも疑問に思ってた事項なので自分用にメモ。CやJava、またはPerl等のプログラム言語では、整数の値に1を加算する時にインクリメント演算子++を使用します。しかし、Rubyではインクリメント演算子を使うことは出来ません。 インクリメント…

Rubyで乱数生成

Rubyの乱数生成メモです。 rand関数 Rubyで乱数生成をするにはrandメソッドを使います。 10.times do puts rand(1000) end このプログラムは、0~999までの範囲の乱数を10回出力します。ただ、この乱数は擬似乱数と呼ばれるものであり、乱数生成に使われる種…

Rubyで書式付き出力を行う

Rubyの書式付き出力に関するメモ。 Rubyの書式付き出力 C言語なんかでもみるsprintfメソッドを使うやり方と、%演算子を使うやり方があります。先ずは%演算子を使う例を見てみます。プログラム (1..10).each do |n| puts "%03d" % n end 実行結果 001 002 003…

Rubyのsortメモ

Rubyのsortに関するメモです。 sortメソッド 配列をソートするには、sort(もしくはsort!)メソッドを使います。後ろにブロック処理を記述することで、比較方法を定義する事が出来ます。ここでは昇順でソートする方法と降順でソートする方法を記載します。 p […

Rubyでhashから値を取る方法のメモ

Rubyでhashを使ってて、Javaとかとは勝手が違っていたところで結構ハマッたので、調べた情報をメモ。 keyが文字列かシンボルか? Rubyのhashはkeyとして文字列はもちろん、シンボルをkeyとして使うことも出来ます。例として、文字列、シンボルそれぞれをkey…

RubyでStreamから渡された数値群をFixnumに変換する方法

CodeIQ、paiza等で出るプログラミングの問題では、標準入力から渡された数値データを処理する事が多いですが、標準入力経由だと基本文字列として受け取る為、計算に利用するにはプログラム内部で数値型に変換する必要があります。この変換処理をいちいち書く…

Rubyにおける「真」と「偽」の判定

Ruby及びその他の言語に於ける真と偽の扱いのメモ。 「真」と「偽」の扱い if文やwhile文での条件判定に使う「真」と「偽」の扱いはプログラム言語により様々だったりします。例えばC言語ではint型の0が「偽」であり、それ以外が「真」です。Java言語ではプ…

Rubyプログラムをプロファイラで計測する

今回は、Rubyのプロファイルを取得する機能についてのメモ。 プロファイラの実行 Rubyでは標準でプロファイルを取る機能が用意されています。ここでいうプロファイルとは、どの処理にどれ位時間が掛かってるかや、どの処理が何回呼ばれたかという分析結果で…

DATA変数と__END__トークンがテストに便利

今回は、ちょっとしたRubyプログラムのテストに便利なDATA変数の使い方のメモです。 DATA変数とは Rubyプログラムファイルに__END__トークンだけの行が含まれている場合、その次の行以降にアクセスする為のストリームとしてDATA変数が定義されます。この機能…

RubyのLoggerを使ってみる

どうも、パイソンです。今回はRubyのログ出力に関する簡単なメモです。 Loggerクラスの使い方 Rubyにはどうも標準でLoggerというログ出力用ライブラリが備わっているようです。 使い勝手としてはJavaのlog4jと似た風な感じかなーという印象。プログラム requ…

RubyのTimeクラスを使ってみた

どうも、パイソンです。今回はRubyのTimeクラスのメモです。 Timeクラス Rubyで現在時間を取るにはTimeクラスを使う。 使い方もRubyらしく結構シンプル。プログラム puts Time.new t = Time.new puts "今日は" + t.year.to_s + "年" + t.month.to_s + "月" +…

Rubyでベンチマークを取る

Rubyについて調べてると、そこかしこのサイトでRubyプログラムの処理速度を出しているところがあったんですが、どうすれば出せるかを理解してなかったので、ちゃんと調べた結果をメモしておきます。 Rubyでベンチマーク測定 なんとRubyでは、標準で処理速度…