2016年1月11日月曜日

160111(3)

Ruby


単位分数の和が1 / 2(2)

分母を互いに素な2つの数に分解してみた。

# -*- coding: cp932 -*-

def f(n)
  return [] if n < 2
  ary = [[1, 2]]
  a_ary = [[[1, 2]]]
  (3..n).each{|i|
    (1..i / 2).each{|j|
      if i.gcd(j) == 1
        ary.delete_at(ary.index([j, i - j]))
        ary << [j, i]
        ary << [i - j, i]
      end
    }
    a_ary << ary.clone.sort
  }
  a_ary
end

p f(1)
p f(2)
p ary = f(30)
puts '逆数の和が1 / 2になることを確認してみる'
p ary.map{|i| i.inject(0){|s, j| s += 1r / (j[0] * j[1])} == 1r / 2}

出力結果
[]
[[[1, 2]]]
[[[1, 2]], [[1, 3], [2, 3]], [[1, 4], [2, 3], [3, 4]], [[1, 5], [2, 5], [3, 4], [3, 5], [4, 5]], [[1, 6], [2, 5], [3, 4], [3, 5], [4, 5], [5, 6]], [[1, 7], [2, 7], [3, 5], [3, 7], [4, 5], [4, 7], [5, 6], [5, 7], [6, 7]], [[1, 8], [2, 7], [3, 7], [3, 8], [4, 5], [4, 7], [5, 6], [5, 7], [5, 8], [6, 7], [7, 8]], [[1, 9], [2, 9], [3, 7], [3, 8], [4, 7], [4, 9], [5, 6], [5, 7], [5, 8], [5, 9], [6, 7], [7, 8], [7, 9], [8, 9]], [[1, 10], [2, 9], [3, 8], [3, 10], [4, 7], [4, 9], [5, 6], [5, 7], [5, 8], [5, 9], [6, 7], [7, 8], [7, 9], [7, 10], [8, 9], [9, 10]], [[1, 11], [2, 11], [3, 10], [3, 11], [4, 9], [4, 11], [5, 7], [5, 8], [5, 9], [5, 11], [6, 7], [6, 11], [7, 8], [7, 9], [7, 10], [7, 11], [8, 9], [8, 11], [9, 10], [9, 11], [10, 11]], [[1, 12], [2, 11], [3, 10], [3, 11], [4, 9], [4, 11], [5, 8], [5, 9], [5, 11], [5, 12], [6, 7], [6, 11], [7, 8], [7, 9], [7, 10], [7, 11], [7, 12], [8, 9], [8, 11], [9, 10], [9, 11], [10, 11], [11, 12]], [[1, 13], [2, 13], [3, 11], [3, 13], [4, 11], [4, 13], [5, 9], [5, 11], [5, 12], [5, 13], [6, 11], [6, 13], [7, 8], [7, 9], [7, 10], [7, 11], [7, 12], [7, 13], [8, 9], [8, 11], [8, 13], [9, 10], [9, 11], [9, 13], [10, 11], [10, 13], [11, 12], [11, 13], [12, 13]], [[1, 14], [2, 13], [3, 13], [3, 14], [4, 11], [4, 13], [5, 11], [5, 12], [5, 13], [5, 14], [6, 11], [6, 13], [7, 8], [7, 9], [7, 10], [7, 11], [7, 12], [7, 13], [8, 9], [8, 11], [8, 13], [9, 10], [9, 11], [9, 13], [9, 14], [10, 11], [10, 13], [11, 12], [11, 13], [11, 14], [12, 13], [13, 14]], [[1, 15], [2, 15], [3, 13], [3, 14], [4, 13], [4, 15], [5, 11], [5, 12], [5, 13], [5, 14], [6, 11], [6, 13], [7, 9], [7, 10], [7, 11], [7, 12], [7, 13], [7, 15], [8, 9], [8, 11], [8, 13], [8, 15], [9, 10], [9, 11], [9, 13], [9, 14], [10, 11], [10, 13], [11, 12], [11, 13], [11, 14], [11, 15], [12, 13], [13, 14], [13, 15], [14, 15]], [[1, 16], [2, 15], [3, 14], [3, 16], [4, 13], [4, 15], [5, 12], [5, 13], [5, 14], [5, 16], [6, 11], [6, 13], [7, 10], [7, 11], [7, 12], [7, 13], [7, 15], [7, 16], [8, 9], [8, 11], [8, 13], [8, 15], [9, 10], [9, 11], [9, 13], [9, 14], [9, 16], [10, 11], [10, 13], [11, 12], [11, 13], [11, 14], [11, 15], [11, 16], [12, 13], [13, 14], [13, 15], [13, 16], [14, 15], [15, 16]], [[1, 17], [2, 17], [3, 16], [3, 17], [4, 15], [4, 17], [5, 13], [5, 14], [5, 16], [5, 17], [6, 13], [6, 17], [7, 11], [7, 12], [7, 13], [7, 15], [7, 16], [7, 17], [8, 11], [8, 13], [8, 15], [8, 17], [9, 10], [9, 11], [9, 13], [9, 14], [9, 16], [9, 17], [10, 11], [10, 13], [10, 17], [11, 12], [11, 13], [11, 14], [11, 15], [11, 16], [11, 17], [12, 13], [12, 17], [13, 14], [13, 15], [13, 16], [13, 17], [14, 15], [14, 17], [15, 16], [15, 17], [16, 17]], [[1, 18], [2, 17], [3, 16], [3, 17], [4, 15], [4, 17], [5, 14], [5, 16], [5, 17], [5, 18], [6, 13], [6, 17], [7, 12], [7, 13], [7, 15], [7, 16], [7, 17], [7, 18], [8, 11], [8, 13], [8, 15], [8, 17], [9, 10], [9, 11], [9, 13], [9, 14], [9, 16], [9, 17], [10, 11], [10, 13], [10, 17], [11, 12], [11, 13], [11, 14], [11, 15], [11, 16], [11, 17], [11, 18], [12, 13], [12, 17], [13, 14], [13, 15], [13, 16], [13, 17], [13, 18], [14, 15], [14, 17], [15, 16], [15, 17], [16, 17], [17, 18]], [[1, 19], [2, 19], [3, 17], [3, 19], [4, 17], [4, 19], [5, 16], [5, 17], [5, 18], [5, 19], [6, 17], [6, 19], [7, 13], [7, 15], [7, 16], [7, 17], [7, 18], [7, 19], [8, 13], [8, 15], [8, 17], [8, 19], [9, 11], [9, 13], [9, 14], [9, 16], [9, 17], [9, 19], [10, 11], [10, 13], [10, 17], [10, 19], [11, 12], [11, 13], [11, 14], [11, 15], [11, 16], [11, 17], [11, 18], [11, 19], [12, 13], [12, 17], [12, 19], [13, 14], [13, 15], [13, 16], [13, 17], [13, 18], [13, 19], [14, 15], [14, 17], [14, 19], [15, 16], [15, 17], [15, 19], [16, 17], [16, 19], [17, 18], [17, 19], [18, 19]], [[1, 20], [2, 19], [3, 19], [3, 20], [4, 17], [4, 19], [5, 16], [5, 17], [5, 18], [5, 19], [6, 17], [6, 19], [7, 15], [7, 16], [7, 17], [7, 18], [7, 19], [7, 20], [8, 13], [8, 15], [8, 17], [8, 19], [9, 13], [9, 14], [9, 16], [9, 17], [9, 19], [9, 20], [10, 11], [10, 13], [10, 17], [10, 19], [11, 12], [11, 13], [11, 14], [11, 15], [11, 16], [11, 17], [11, 18], [11, 19], [11, 20], [12, 13], [12, 17], [12, 19], [13, 14], [13, 15], [13, 16], [13, 17], [13, 18], [13, 19], [13, 20], [14, 15], [14, 17], [14, 19], [15, 16], [15, 17], [15, 19], [16, 17], [16, 19], [17, 18], [17, 19], [17, 20], [18, 19], [19, 20]], [[1, 21], [2, 21], [3, 19], [3, 20], [4, 19], [4, 21], [5, 17], [5, 18], [5, 19], [5, 21], [6, 17], [6, 19], [7, 15], [7, 16], [7, 17], [7, 18], [7, 19], [7, 20], [8, 15], [8, 17], [8, 19], [8, 21], [9, 13], [9, 14], [9, 16], [9, 17], [9, 19], [9, 20], [10, 13], [10, 17], [10, 19], [10, 21], [11, 12], [11, 13], [11, 14], [11, 15], [11, 16], [11, 17], [11, 18], [11, 19], [11, 20], [11, 21], [12, 13], [12, 17], [12, 19], [13, 14], [13, 15], [13, 16], [13, 17], [13, 18], [13, 19], [13, 20], [13, 21], [14, 15], [14, 17], [14, 19], [15, 16], [15, 17], [15, 19], [16, 17], [16, 19], [16, 21], [17, 18], [17, 19], [17, 20], [17, 21], [18, 19], [19, 20], [19, 21], [20, 21]], [[1, 22], [2, 21], [3, 20], [3, 22], [4, 19], [4, 21], [5, 18], [5, 19], [5, 21], [5, 22], [6, 17], [6, 19], [7, 16], [7, 17], [7, 18], [7, 19], [7, 20], [7, 22], [8, 15], [8, 17], [8, 19], [8, 21], [9, 14], [9, 16], [9, 17], [9, 19], [9, 20], [9, 22], [10, 13], [10, 17], [10, 19], [10, 21], [11, 12], [11, 13], [11, 14], [11, 15], [11, 16], [11, 17], [11, 18], [11, 19], [11, 20], [11, 21], [12, 13], [12, 17], [12, 19], [13, 14], [13, 15], [13, 16], [13, 17], [13, 18], [13, 19], [13, 20], [13, 21], [13, 22], [14, 15], [14, 17], [14, 19], [15, 16], [15, 17], [15, 19], [15, 22], [16, 17], [16, 19], [16, 21], [17, 18], [17, 19], [17, 20], [17, 21], [17, 22], [18, 19], [19, 20], [19, 21], [19, 22], [20, 21], [21, 22]], [[1, 23], [2, 23], [3, 22], [3, 23], [4, 21], [4, 23], [5, 19], [5, 21], [5, 22], [5, 23], [6, 19], [6, 23], [7, 17], [7, 18], [7, 19], [7, 20], [7, 22], [7, 23], [8, 17], [8, 19], [8, 21], [8, 23], [9, 16], [9, 17], [9, 19], [9, 20], [9, 22], [9, 23], [10, 17], [10, 19], [10, 21], [10, 23], [11, 13], [11, 14], [11, 15], [11, 16], [11, 17], [11, 18], [11, 19], [11, 20], [11, 21], [11, 23], [12, 13], [12, 17], [12, 19], [12, 23], [13, 14], [13, 15], [13, 16], [13, 17], [13, 18], [13, 19], [13, 20], [13, 21], [13, 22], [13, 23], [14, 15], [14, 17], [14, 19], [14, 23], [15, 16], [15, 17], [15, 19], [15, 22], [15, 23], [16, 17], [16, 19], [16, 21], [16, 23], [17, 18], [17, 19], [17, 20], [17, 21], [17, 22], [17, 23], [18, 19], [18, 23], [19, 20], [19, 21], [19, 22], [19, 23], [20, 21], [20, 23], [21, 22], [21, 23], [22, 23]], [[1, 24], [2, 23], [3, 22], [3, 23], [4, 21], [4, 23], [5, 21], [5, 22], [5, 23], [5, 24], [6, 19], [6, 23], [7, 18], [7, 19], [7, 20], [7, 22], [7, 23], [7, 24], [8, 17], [8, 19], [8, 21], [8, 23], [9, 16], [9, 17], [9, 19], [9, 20], [9, 22], [9, 23], [10, 17], [10, 19], [10, 21], [10, 23], [11, 14], [11, 15], [11, 16], [11, 17], [11, 18], [11, 19], [11, 20], [11, 21], [11, 23], [11, 24], [12, 13], [12, 17], [12, 19], [12, 23], [13, 14], [13, 15], [13, 16], [13, 17], [13, 18], [13, 19], [13, 20], [13, 21], [13, 22], [13, 23], [13, 24], [14, 15], [14, 17], [14, 19], [14, 23], [15, 16], [15, 17], [15, 19], [15, 22], [15, 23], [16, 17], [16, 19], [16, 21], [16, 23], [17, 18], [17, 19], [17, 20], [17, 21], [17, 22], [17, 23], [17, 24], [18, 19], [18, 23], [19, 20], [19, 21], [19, 22], [19, 23], [19, 24], [20, 21], [20, 23], [21, 22], [21, 23], [22, 23], [23, 24]], [[1, 25], [2, 25], [3, 23], [3, 25], [4, 23], [4, 25], [5, 21], [5, 22], [5, 23], [5, 24], [6, 23], [6, 25], [7, 19], [7, 20], [7, 22], [7, 23], [7, 24], [7, 25], [8, 19], [8, 21], [8, 23], [8, 25], [9, 17], [9, 19], [9, 20], [9, 22], [9, 23], [9, 25], [10, 17], [10, 19], [10, 21], [10, 23], [11, 15], [11, 16], [11, 17], [11, 18], [11, 19], [11, 20], [11, 21], [11, 23], [11, 24], [11, 25], [12, 17], [12, 19], [12, 23], [12, 25], [13, 14], [13, 15], [13, 16], [13, 17], [13, 18], [13, 19], [13, 20], [13, 21], [13, 22], [13, 23], [13, 24], [13, 25], [14, 15], [14, 17], [14, 19], [14, 23], [14, 25], [15, 16], [15, 17], [15, 19], [15, 22], [15, 23], [16, 17], [16, 19], [16, 21], [16, 23], [16, 25], [17, 18], [17, 19], [17, 20], [17, 21], [17, 22], [17, 23], [17, 24], [17, 25], [18, 19], [18, 23], [18, 25], [19, 20], [19, 21], [19, 22], [19, 23], [19, 24], [19, 25], [20, 21], [20, 23], [21, 22], [21, 23], [21, 25], [22, 23], [22, 25], [23, 24], [23, 25], [24, 25]], [[1, 26], [2, 25], [3, 25], [3, 26], [4, 23], [4, 25], [5, 22], [5, 23], [5, 24], [5, 26], [6, 23], [6, 25], [7, 20], [7, 22], [7, 23], [7, 24], [7, 25], [7, 26], [8, 19], [8, 21], [8, 23], [8, 25], [9, 19], [9, 20], [9, 22], [9, 23], [9, 25], [9, 26], [10, 17], [10, 19], [10, 21], [10, 23], [11, 16], [11, 17], [11, 18], [11, 19], [11, 20], [11, 21], [11, 23], [11, 24], [11, 25], [11, 26], [12, 17], [12, 19], [12, 23], [12, 25], [13, 14], [13, 15], [13, 16], [13, 17], [13, 18], [13, 19], [13, 20], [13, 21], [13, 22], [13, 23], [13, 24], [13, 25], [14, 15], [14, 17], [14, 19], [14, 23], [14, 25], [15, 16], [15, 17], [15, 19], [15, 22], [15, 23], [15, 26], [16, 17], [16, 19], [16, 21], [16, 23], [16, 25], [17, 18], [17, 19], [17, 20], [17, 21], [17, 22], [17, 23], [17, 24], [17, 25], [17, 26], [18, 19], [18, 23], [18, 25], [19, 20], [19, 21], [19, 22], [19, 23], [19, 24], [19, 25], [19, 26], [20, 21], [20, 23], [21, 22], [21, 23], [21, 25], [21, 26], [22, 23], [22, 25], [23, 24], [23, 25], [23, 26], [24, 25], [25, 26]], [[1, 27], [2, 27], [3, 25], [3, 26], [4, 25], [4, 27], [5, 23], [5, 24], [5, 26], [5, 27], [6, 23], [6, 25], [7, 22], [7, 23], [7, 24], [7, 25], [7, 26], [7, 27], [8, 21], [8, 23], [8, 25], [8, 27], [9, 19], [9, 20], [9, 22], [9, 23], [9, 25], [9, 26], [10, 19], [10, 21], [10, 23], [10, 27], [11, 17], [11, 18], [11, 19], [11, 20], [11, 21], [11, 23], [11, 24], [11, 25], [11, 26], [11, 27], [12, 17], [12, 19], [12, 23], [12, 25], [13, 15], [13, 16], [13, 17], [13, 18], [13, 19], [13, 20], [13, 21], [13, 22], [13, 23], [13, 24], [13, 25], [13, 27], [14, 15], [14, 17], [14, 19], [14, 23], [14, 25], [14, 27], [15, 16], [15, 17], [15, 19], [15, 22], [15, 23], [15, 26], [16, 17], [16, 19], [16, 21], [16, 23], [16, 25], [16, 27], [17, 18], [17, 19], [17, 20], [17, 21], [17, 22], [17, 23], [17, 24], [17, 25], [17, 26], [17, 27], [18, 19], [18, 23], [18, 25], [19, 20], [19, 21], [19, 22], [19, 23], [19, 24], [19, 25], [19, 26], [19, 27], [20, 21], [20, 23], [20, 27], [21, 22], [21, 23], [21, 25], [21, 26], [22, 23], [22, 25], [22, 27], [23, 24], [23, 25], [23, 26], [23, 27], [24, 25], [25, 26], [25, 27], [26, 27]], [[1, 28], [2, 27], [3, 26], [3, 28], [4, 25], [4, 27], [5, 24], [5, 26], [5, 27], [5, 28], [6, 23], [6, 25], [7, 22], [7, 23], [7, 24], [7, 25], [7, 26], [7, 27], [8, 21], [8, 23], [8, 25], [8, 27], [9, 20], [9, 22], [9, 23], [9, 25], [9, 26], [9, 28], [10, 19], [10, 21], [10, 23], [10, 27], [11, 18], [11, 19], [11, 20], [11, 21], [11, 23], [11, 24], [11, 25], [11, 26], [11, 27], [11, 28], [12, 17], [12, 19], [12, 23], [12, 25], [13, 16], [13, 17], [13, 18], [13, 19], [13, 20], [13, 21], [13, 22], [13, 23], [13, 24], [13, 25], [13, 27], [13, 28], [14, 15], [14, 17], [14, 19], [14, 23], [14, 25], [14, 27], [15, 16], [15, 17], [15, 19], [15, 22], [15, 23], [15, 26], [15, 28], [16, 17], [16, 19], [16, 21], [16, 23], [16, 25], [16, 27], [17, 18], [17, 19], [17, 20], [17, 21], [17, 22], [17, 23], [17, 24], [17, 25], [17, 26], [17, 27], [17, 28], [18, 19], [18, 23], [18, 25], [19, 20], [19, 21], [19, 22], [19, 23], [19, 24], [19, 25], [19, 26], [19, 27], [19, 28], [20, 21], [20, 23], [20, 27], [21, 22], [21, 23], [21, 25], [21, 26], [22, 23], [22, 25], [22, 27], [23, 24], [23, 25], [23, 26], [23, 27], [23, 28], [24, 25], [25, 26], [25, 27], [25, 28], [26, 27], [27, 28]], [[1, 29], [2, 29], [3, 28], [3, 29], [4, 27], [4, 29], [5, 26], [5, 27], [5, 28], [5, 29], [6, 25], [6, 29], [7, 23], [7, 24], [7, 25], [7, 26], [7, 27], [7, 29], [8, 23], [8, 25], [8, 27], [8, 29], [9, 22], [9, 23], [9, 25], [9, 26], [9, 28], [9, 29], [10, 21], [10, 23], [10, 27], [10, 29], [11, 19], [11, 20], [11, 21], [11, 23], [11, 24], [11, 25], [11, 26], [11, 27], [11, 28], [11, 29], [12, 19], [12, 23], [12, 25], [12, 29], [13, 17], [13, 18], [13, 19], [13, 20], [13, 21], [13, 22], [13, 23], [13, 24], [13, 25], [13, 27], [13, 28], [13, 29], [14, 17], [14, 19], [14, 23], [14, 25], [14, 27], [14, 29], [15, 16], [15, 17], [15, 19], [15, 22], [15, 23], [15, 26], [15, 28], [15, 29], [16, 17], [16, 19], [16, 21], [16, 23], [16, 25], [16, 27], [16, 29], [17, 18], [17, 19], [17, 20], [17, 21], [17, 22], [17, 23], [17, 24], [17, 25], [17, 26], [17, 27], [17, 28], [17, 29], [18, 19], [18, 23], [18, 25], [18, 29], [19, 20], [19, 21], [19, 22], [19, 23], [19, 24], [19, 25], [19, 26], [19, 27], [19, 28], [19, 29], [20, 21], [20, 23], [20, 27], [20, 29], [21, 22], [21, 23], [21, 25], [21, 26], [21, 29], [22, 23], [22, 25], [22, 27], [22, 29], [23, 24], [23, 25], [23, 26], [23, 27], [23, 28], [23, 29], [24, 25], [24, 29], [25, 26], [25, 27], [25, 28], [25, 29], [26, 27], [26, 29], [27, 28], [27, 29], [28, 29]], [[1, 30], [2, 29], [3, 28], [3, 29], [4, 27], [4, 29], [5, 26], [5, 27], [5, 28], [5, 29], [6, 25], [6, 29], [7, 24], [7, 25], [7, 26], [7, 27], [7, 29], [7, 30], [8, 23], [8, 25], [8, 27], [8, 29], [9, 22], [9, 23], [9, 25], [9, 26], [9, 28], [9, 29], [10, 21], [10, 23], [10, 27], [10, 29], [11, 20], [11, 21], [11, 23], [11, 24], [11, 25], [11, 26], [11, 27], [11, 28], [11, 29], [11, 30], [12, 19], [12, 23], [12, 25], [12, 29], [13, 18], [13, 19], [13, 20], [13, 21], [13, 22], [13, 23], [13, 24], [13, 25], [13, 27], [13, 28], [13, 29], [13, 30], [14, 17], [14, 19], [14, 23], [14, 25], [14, 27], [14, 29], [15, 16], [15, 17], [15, 19], [15, 22], [15, 23], [15, 26], [15, 28], [15, 29], [16, 17], [16, 19], [16, 21], [16, 23], [16, 25], [16, 27], [16, 29], [17, 18], [17, 19], [17, 20], [17, 21], [17, 22], [17, 23], [17, 24], [17, 25], [17, 26], [17, 27], [17, 28], [17, 29], [17, 30], [18, 19], [18, 23], [18, 25], [18, 29], [19, 20], [19, 21], [19, 22], [19, 23], [19, 24], [19, 25], [19, 26], [19, 27], [19, 28], [19, 29], [19, 30], [20, 21], [20, 23], [20, 27], [20, 29], [21, 22], [21, 23], [21, 25], [21, 26], [21, 29], [22, 23], [22, 25], [22, 27], [22, 29], [23, 24], [23, 25], [23, 26], [23, 27], [23, 28], [23, 29], [23, 30], [24, 25], [24, 29], [25, 26], [25, 27], [25, 28], [25, 29], [26, 27], [26, 29], [27, 28], [27, 29], [28, 29], [29, 30]]]
逆数の和が1 / 2になることを確認してみる
[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]

0 件のコメント:

コメントを投稿

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