2015年5月24日日曜日

150524

Ruby


「普通の分数の足し算」と「日付の足し算」が一致する組合せ

3/3 + 7/2 = 9/2
62 + 183 = 245
の両方が成り立っている。
このような例を全部出力してみる。
(https://teratail.com/questions/10223)

require 'date'

md0 = Date.new(2013, 12, 31)
(1..365).to_a.repeated_combination(2){|i, j|
  x, y, z = md0 + i, md0 + j, md0 + i + j 
  z0 = Rational(x.mon,x.day) + Rational(y.mon, y.day)
  # Rational(x.mon,x.day) + Rational(y.mon, y.day) == Rational(z.mon, z.day)ではダメ
  if z.mon == z0.numerator && z.day == z0.denominator
    puts [x.strftime("%m/%d"), y.strftime("%m/%d")].join(",")
  end
}

出力結果
01/28,02/28
01/30,06/30
01/31,07/31
03/03,07/02
04/06,09/27
04/22,09/11
07/07,09/27
08/06,09/27
09/12,10/24
10/10,12/28
10/15,11/24
10/30,12/04
12/06,12/30

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。