院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

2019-01-06から1日間の記事一覧

数学パズルQ8

def move(num, hist = [], cur_pos = [0, 0]) hist = [*hist, cur_pos] return 0 if hist.count > num + 1 return 1 if hist.count == num + 1 around = [[0, 1], [0, -1], [1, 0], [-1, 0]] around.reduce(0) do |acc, ar| next_pos = [cur_pos[0] + ar[0],…

数学パズルQ6

def colats(num, accNum = 3 * num + 1) return 1 if accNum == num return 0 if accNum == 1 accNum = accNum.even? ? accNum / 2 : 3 * accNum + 1 colats(num, accNum) end puts [*1..10000].select { |el| el.even? }.map { |el| colats(el) }.sum この…

数学パズル Q5

# 入力:数値 # 出力:組み合わせの数 def ryogae(tar) cnt = 0 (0..15).each do |zyu| (0..15).each do |gozyu| (0..15).each do |hyaku| (0..15).each do |gohyaku| next if zyu + gozyu + hyaku + gohyaku > 15 val = 10 * zyu + 50 * gozyu + 100 * hyak…