`
fengqx
  • 浏览: 97988 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

一个有趣的推理

阅读更多
出处:http://uptolife.blogbus.com/logs/48251044.html
请回答下面10个问题:       
  1。   第一个答案是b的问题是哪一个?       
  (a)2;(b)   3;(c)4;(d)5;(e)6       
  2。唯一的连续两个具有相同答案的问题是:       
  (a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7;       
  3。本问题答案和哪一个问题的答案相同?       
  (a)1;(b)2;(c)4;(d)7;(e)6       
  4。答案是a的问题的个数是:       
  (a)0;(b)1;(c)2;(d)3;(e)4       
  5。本问题答案和哪一个问题的答案相同?       
  (a)10;(b)9;(c)8;(d)7;(e)6       
  6。答案是a的问题的个数和答案是什么的问题的个数相同?       
  (a)b;(b)c;(c)d;(d)e;(e)以上都不是       
  7。按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?       
  (a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母)       
  8。答案是元音字母的问题的个数是:       
  (a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母)       
  9。答案是辅音字母的问题的个数是:       
  (a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数       
  10。本问题的答案是:       
  (a)a;(b)b;(c)c;(d)d;(e)e。 

这个逻辑推理好像不是很简单呀,我等凡夫俗子还是用穷举得了。

class Test
  attr_accessor :str
  def test0
    @str.index('1')==@str[0,1].to_i+1
  end
  def test1
    if @str.scan(/([0|1|2|3|4])\1/).size==1
      case @str[1,1]
      when '0'; @str[1,1]==@str[2,1]
      when '1'; @str[2,1]==@str[3,1]
      when '2'; @str[3,1]==@str[4,1]
      when '3'; @str[4,1]==@str[5,1]
      when '4'; @str[5,1]==@str[6,1]
      end
    end
  end
  def test2
    case @str[2,1]
    when '0'; @str[2,1]==@str[0,1]
    when '1'; @str[2,1]==@str[1,1]
    when '2'; @str[2,1]==@str[3,1]
    when '3'; @str[2,1]==@str[6,1]
    when '4'; @str[2,1]==@str[5,1]
    end
  end
  def test3
    @str.scan(/0/).size==@str[3,1].to_i
  end
  def test4
    @str[4,1]==@str[9-@str[4,1].to_i,1]
  end
  def test5
    case @str.scan(/0/).size
    when @str.scan(/1/).size; @str[5,1]=='0'
    when @str.scan(/2/).size; @str[5,1]=='1'
    when @str.scan(/3/).size; @str[5,1]=='2'
    when @str.scan(/4/).size; @str[5,1]=='3'
    else @str[5,1]=='4'
    end
  end
  def test6
    (@str[6,1].to_i-@str[7,1].to_i).abs==4-@str[6,1].to_i
  end
  def test7
    @str.scan(/[0|4]/).size==@str[7,1].to_i+2
  end
  def test8
    r = @str.scan(/[1|2|3]/).size
    case @str[8,1]
    when '0'; [2,3,5,7].include?(r)
    when '1'; [1,2,6].include?(r)
    when '2'; [0,1,4,9].include?(r)
    when '3'; [0,1,8].include?(r)
    when '4'; [0,5,10].include?(r)
    end
  end

  def test
    while @str.length==10
      @str="%010d" % @str.to_i(5).succ.to_s(5)
      if test0 and test1 and test2 and test3 and test4 and test5 and test6 and test7 and test8
        p @str
      end
    end
  end
end

t = Test.new
t.str = "0000000000"
t.test
这个计算倒是有点久,但总比你推论要快些吧,算出来的结果只有一个,"2341443210"(cdebeedcba)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics