Skip to content

Instantly share code, notes, and snippets.

View shakemurasan's full-sized avatar
🤔
I wish a splatoon3....

Yasuhiro Matsumura shakemurasan

🤔
I wish a splatoon3....
View GitHub Profile
# ref:
# http://blog.kymmt.com/entry/hook-by-alias-chaining-in-ruby
# http://miyohide.hatenablog.com/entry/2014/02/28/203743
module AddLogging
def self.included(base)
base.extend HookMethod
end
module HookMethod
require 'benchmark'
def measure_do
result = Benchmark.measure do
yield
end
puts Benchmark::CAPTION
puts result
end
@shakemurasan
shakemurasan / puzzle15.rb
Last active July 2, 2016 08:52
プログラマ脳を鍛える数学パズル:Q15
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def step_count(a, b, n)
if a + b >= n
@count += 1 if a + b == n
return
end
@shakemurasan
shakemurasan / puzzle01.rb
Last active July 2, 2016 08:52
プログラマ脳を鍛える数学パズル:Q01
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def search_reversible_num(offset)
i = offset;
loop do
n2 = i.to_s(2)
@shakemurasan
shakemurasan / puzzle02.rb
Last active July 2, 2016 08:52
プログラマ脳を鍛える数学パズル:Q02
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def print_enable_combinarion(from, to)
(from..to).each do |num|
nums = num.to_s.split('')
puts num if enable_combinarion?(nums)
end
end
@shakemurasan
shakemurasan / puzzle03.rb
Last active July 2, 2016 08:53
プログラマ脳を鍛える数学パズル:Q03
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def reverse_card_open(card_num)
cards = Array.new(card_num, false)
1.upto(card_num) do |i|
i.step(card_num, i+1) do |j|
cards[j] = !cards[j]
@shakemurasan
shakemurasan / puzzle04.rb
Last active July 2, 2016 08:53
プログラマ脳を鍛える数学パズル:Q04
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def cut_bar(bar, m)
t = m
rt_bar = bar.dup
bar.each_with_index do |b, i|
if b > 1
t -= 1
@shakemurasan
shakemurasan / modules_multiple.rb
Last active August 7, 2016 03:18
メタプログラミングRuby 第2版 P33 のサンプルコード+α
module M1
end
module M2
include M1
end
module M3
prepend M1
include M2
@shakemurasan
shakemurasan / puzzle17.rb
Created August 21, 2016 03:12
プログラマ脳を鍛える数学パズル:Q17
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def pair2one(num)
@count = 0
countup(0, num) # 男子が先頭の場合を計上.
countup(1, num) # 女子が先頭の場合を計上.
puts @count
end
@shakemurasan
shakemurasan / puzzle18.rb
Last active August 26, 2016 13:41
プログラマ脳を鍛える数学パズル:Q18
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
ROOT_NUM = [4, 9, 16, 25, 36, 49, 64]
def ichigo
@result = []
(2..(ROOT_NUM[-1] / 2)).each { |i| search_pair(1, (2..i).to_a, [1]) }
p @result