image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2007年11月16日 | トップページ | 2007年11月18日 »

2007年11月17日

2007-11-17

覆面算

4つの数を 四則演算をつかって10 にするというパズルの話題がおしゃべりに上がった。
# 1, 9, 1, 9 から 10 をつくるのは有名な問題の1つ。
# 1, 9, 2, 9 なら 2*9 - (9-1) で 10 にできる。

その影響かどうかしらないけど、夢でなぜか、覆面算のことが出てきた。

ruby や prolog で覆面算を扱っているページを google 検索してみた。

- http://www.geocities.jp/m_hiroi/prolog/prolog14.html#answer2
  SEND + MORE = MONEY を prolog で解く

- http://d.hatena.ne.jp/fkino/20061022
  HACKER + HACKER + HACKER = ENERGY を ruby で解く

- http://tsukimi.agusa.i.is.nagoya-u.ac.jp/~mzp/b4/?exercise
  HACKER + HACKER + HACKER + HACKER = ENERGY という問題

HACKER * 3 = ENERGY は解が複数あるようだが、
HACKER * 7 = ENERGY や HACKER * 8 = ENERGY は解が1つだけのようだ。

白雪姫の7人の小人はちいさな穴をあけることができるが、
7人のハッカーなら、エネルギーをつくるというわけか!

$ cat hacker.rb
# See http://d.hatena.ne.jp/fkino/20061022
#     http://tsukimi.agusa.i.is.nagoya-u.ac.jp/~mzp/b4/?exercise
# HACKER + HACKER + HACKER + HACKER= ENERGY

module Place
  def place n
    self / n % 10
  end

  def place2 nn
    self / nn % 100
  end
end

class Integer
  include Place
end

module Uniq
  def uniq?
    size = self.size
    self.uniq!
    self.size == size
  end
end

class Array
  include Uniq
end

mult = 8
(100000..999999).each do |energy|  # 300000
  e = energy.place(100000)
  next if e == 0
  e2 = energy.place(1000)
  next unless e == e2
  n = energy.place(10000)
  r = energy.place(100)
  g = energy.place(10)
  y = energy.place(1)
  next unless [e, n, r, g, y].uniq?
  next unless energy % mult == 0  # % 3
  hacker = energy / mult   # / 3
  next unless hacker.place2(1) == energy.place2(100)
  h = hacker.place(100000)
  next if h == 0

  a = hacker.place(10000)
  c = hacker.place(1000)
  k = hacker.place(100)
  next unless [e, n, r, g, y, h, a, c, k].uniq?
  puts "------"
  puts "HACKER", hacker
  puts "ENERGY", energy
  puts "------"
end

$ ruby hacker.rb
------
HACKER
103978
ENERGY
727846
------

# xfy/xvcd だけで、覆面算を解けるか?
(そんな手間をかけるより、 xvcd から ruby 呼び出しするのが一番と俺は感じるけど...)

マーティン ガードナー のパスル本に沢山の覆面算があり、それを解いて楽しんだことがあったのを思い出した。

Amazonギフト券

« 2007年11月16日 | トップページ | 2007年11月18日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク