解 贝韦克的七个7的问题

上一篇 / 下一篇  2004-10-07 00:00:00 / 个人分类:Smart Ideal

著名的 "贝韦克的七个7的问题" (Berwick's Problem of the Seven Sevens)

在下面除法例题中,被除数被除数除尽:

* * 7 * * * * * * * / * * * * 7 * = * * 7 * *
* * * * * *
-------------------
* * * * * 7 *
* * * * * * *
-------------------
    * 7 * * * *
    * 7 * * * *
--------------------
    * * * * * * *
    * * * * 7 * *
---------------------
        * * * * * *
        * * * * * *

花了点时间,终于解出来了。


* * 7 * * * * * * * / * * * * 7 * = * * 7 * *
* * * * * *
-------------------
* * * * * 7 *
* * * * * * *
-------------------
    * 7 * * * *
    * 7 * * * *
--------------------
    * * * * * * *
    * * * * 7 * *
---------------------
        * * * * * *
        * * * * * *


1.把商的几位设为 a b 7 c d,除数设为U V W X 7 Y,同时,为了方便,把商写在相应的乘积的后面

* * 7 * * * * * * * / U V W X 7 Y = a b 7 c d
* * * * * *             a
-------------------
* * * * * 7 *            
* * * * * * *           b
-------------------
    * 7 * * * *   
    * 7 * * * *  7           
--------------------
    * * * * * * *  
    * * * * 7 * * c
---------------------
        * * * * * * 
        * * * * * * d


2.很显然,从商第3位(7)与除数相乘仍为六位数可以发现,U=1,同理,也可以知道几个积为七位数的,积的第一位必然是1,另外,a,d小于或等于7,b,c大于7


* * 7 * * * * * * * / 1 V W X 7 Y = a b 7 c d
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    * 7 * * * *   
    * 7 * * * *  7
--------------------
    * * * * * * *  
    1 * * * 7 * * c=8/9        
---------------------
        * * * * * * 
        * * * * * * d<=7

3.A处可能是0或9,而QA可能是20/19/10

* * 7 * * * * * * * / 1 V W X 7 Y = a b 7 c d
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    * 7 * * * *   
    * 7 * * * *  7
--------------------
    Q A * * * * * QA = 20/19/10
    1 * * * 7 * * c=8/9
---------------------
        * * * * * * 
        * * * * * * d<=7


4。如果QA为20/19,那么V必须为9,7x19****是六位数,无法符合商的第三位。所以QA肯定是10,下面的积也只能是10
* * 7 * * * * * * * / 1 V W X 7 Y = a b 7 c d
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    * 7 * * * *   
    * 7 * * * *  7
--------------------
    1 0 * * * * * QA不可能为20/19
    1 0 * * 7 * * c=8/9
---------------------
        * * * * * * 
        * * * * * * d<=7


5.再来设想c,假设c=9,那么积只能是108****,等于是说V=2,为了符合7 x 12**** = *7******,除数前三位必须为125

* * 7 * * * * * * * / 1 2 5 X 7 Y = a b 7 c d
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    * 7 * * * *   
    8 7 * * * *  7
--------------------
    1 0 * * * * * 
    1 0 8 * 7 * * c=9
---------------------
        * * * * * * 
        * * * * * * d<=7


6.但是,W=5的话,9*125***就不再是108****了,所以,c=9显然是不对的。结论就是c=8.
在c=8的情况下,V必须为2 or 3

* * 7 * * * * * * * / 1 V W X 7 Y = a b 7 8 d       V=2/3
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    * 7 * * * *   
    * 7 * * * *  7
--------------------
    1 0 * * * * * 
    1 0 * * 7 * * 8
---------------------
        * * * * * * 
        * * * * * * d<=7


7.如果V=3,那么W必须为9才能满足7x139***=*7****,但是,8x139***又不满足10*****了,所以V=2

* * 7 * * * * * * * / 1 3 9 X 7 Y = a b 7 8 d
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    * 7 * * * *   
    9 7 * * * *  7
--------------------
    1 0 * * * * * 
    1 0 * * 7 * * 8
---------------------
        * * * * * * 
        * * * * * * d<=7


8。V=2,
对于商第三位,7x125***=*7****,7x124***=*7**** W=4/5
对于商第四位,8x125***=10*****,8x126***=10*****,8x127***=10***** W>=5
所以W=5


* * 7 * * * * * * * / 1 2 5 X 7 Y = a b 7 8 d
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    9 7 * * * *   
    8 7 * * * *  7
--------------------
    1 0 * * * * * 
    1 0 * * 7 * * 8
---------------------
        * * * * * * 
        * * * * * * d<=7

9.考虑 8 x 125X7Y = 10**7**
8 x 7 = 56
所以积的第三四位 = 8 x X + (5/6) = *7
8 x X = *(2 or 3)
X = 4
商的3,4位出来的积可以继续填充
* * 7 * * * * * * * / 1 2 5 4 7 Y = a b 7 8 d
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    9 7 * * * *   
    8 7 8 * * *  7
--------------------
    1 0 * * * * * 
    1 0 0 3 ? * * 8 ?=7/8
---------------------
        * * * * * * 
        * * * * * * d<=7

10. 97**** - 878*** > 101****
所以.97**** = 979***
继续填充相关等式
可以得出
d = 1

* * 7 * * * * * * * / 1 2 5 4 7 Y = a b 7 8 d
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    9 7 9 * * *   
    8 7 8 * * *  7
--------------------
    1 0 1 * * * * 
    1 0 0 3 ? * * 8 ?=7/8
---------------------
        1 * * * * * 
        1 * * * * * d<=7


11.继续填充相关等式
同时考虑下图的L,K,N,M处
NM-3(7/8)=25
所以
N=6
12547* x 7=87829+(<70)
K=(2/3)
可以得出
L=8/9

* * 7 * * * * * * * / 1 2 5 4 7 Y = a b 7 8 1
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    9 7 9 L * *    L=8/9 
    8 7 8 K * *  7 K=2/3
--------------------
    1 0 1 N M * * 
    1 0 0 3 ? * * 8 ?=7/8
---------------------
        1 2 5 4 7 Y 
        1 2 5 4 7 Y 1

12.假设K=2,那么Y只能为1
填充相关等式

* * 7 * * * * * * * / 1 2 5 4 7 1 = a b 7 8 1
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * * *           b=8/9
-------------------
    9 7 9 9 3 0     
    8 7 8 2 9 9  7
--------------------
    1 0 1 6 3 1 5 
    1 0 0 3 7 6 8 8
---------------------
        1 2 5 4 7 1 
        1 2 5 4 7 1 1

13。再根据b=8/9两种情况进行填充
b=8 

* * 7 * * * * * * * / 1 2 5 4 7 1 = a b 7 8 1
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 0 0 3 7 6 8           b=8
-------------------
    9 7 9 9 3 0     
    8 7 8 2 9 9  7
--------------------
    1 0 1 6 3 1 5 
    1 0 0 3 7 6 8 8
---------------------
        1 2 5 4 7 1 
        1 2 5 4 7 1 1

很显然 *7* - 768 不可能出现 93,所以 b<>8

b=9

* * 7 * * * * * * * / 1 2 5 4 7 1 = a b 7 8 1
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 1 2 9 2 3 9           b=9
-------------------
    9 7 9 9 3 0     
    8 7 8 2 9 9  7
--------------------
    1 0 1 6 3 1 5 
    1 0 0 3 7 6 8 8
---------------------
        1 2 5 4 7 1 
        1 2 5 4 7 1 1

*7* - 239 也不可能出现 93,所以b<>9
也就是说 Y=1的情况不成立

14.
Y > 1
K = 3
N = 6
L = 9
考虑 P
*7* - *P* = 9*
P=7/8

* * 7 * * * * * * * / 1 2 5 4 7 Y = a b 7 8 1        
* * * * * *             a<=7
-------------------
* * * * * 7 *            
1 * * * * P *           b=8/9
-------------------
    9 7 9 9 * *     
    8 7 8 3 * *  7
--------------------
    1 0 1 6 M * * 
    1 0 0 3 ? * * 8 ?=7/8
---------------------
        1 2 5 4 7 Y 
        1 2 5 4 7 Y 1


15.计算Y=(0-9),b=8/9
(这里使用了一些oracle的技巧,完全可以用别的编程手段来完成,java,c,shell,甚至用excel也可以做到,只是正好选用了oracle。当然没有计算机的话,用笔算,珠算也可以的)
RollingPig>variable b number
RollingPig>exec :b := 9
  1  select :b as b,to_char(:b*(125470+rownum),'999,999,999')as result,rownum Y
  2  from all_objects
  3* where rownum < 10
RollingPig>/

  B RESULT         Y
--- ------------ ---
  9    1,129,239   1
  9    1,129,248   2
  9    1,129,257   3
  9    1,129,266   4
**9    1,129,275   5
**9    1,129,284   6
  9    1,129,293   7
  9    1,129,302   8
  9    1,129,311   9

RollingPig>exec :b := 8
RollingPig>/

  B RESULT         Y
--- ------------ ---
  8    1,003,768   1
**8    1,003,776   2
**8    1,003,784   3
  8    1,003,792   4
  8    1,003,800   5
  8    1,003,808   6
  8    1,003,816   7
  8    1,003,824   8
  8    1,003,832   9


而 积的倒数第2位(P)为 7/8 有4种情况
b=9,Y=5
b=9,Y=6
b=8,Y=2
b=8,Y=3

15.逐个来看(当然会把不成功放前面了:) )

b=9,Y=5
a=(1-7)
RollingPig>set feedback off
RollingPig>variable b number
RollingPig>variable Y number
  1  select rownum as a,:b,:y,(rownum*10000+1000*:b+781)*(125470+:Y) as result
  2  from all_objects
  3* where rownum < 8
RollingPig>exec :y:=5
RollingPig>exec :b:=9

  A :B :Y  RESULT
  1  9  5     2482020975
  2  9  5     3736770975
  3  9  5     4991520975
  4  9  5     6246270975
  5  9  5     7501020975
  6  9  5     8755770975
  7  9  5    10010520975

    
显然,第三位没有为7的
b=9,Y=6
a=(1-7)

RollingPig>exec :Y:=6
RollingPig>/

  A :B :Y  RESULT
  1  9  6     2482040756
  2  9  6     3736800756
  3  9  6     4991560756
  4  9  6     6246320756
  5  9  6     7501080756
  6  9  6     8755840756
  7  9  6    10010600756

b=8,Y=3
a=(1-7)


RollingPig>exec :b:=8
RollingPig>exec :y:=3
RollingPig>/

  A :B :Y  RESULT
  1  8  3     2356508413
  2  8  3     3611238413
  3  8  3     4865968413
  4  8  3     6120698413
**5  8  3     7375428413
  6  8  3     8630158413
  7  8  3     9884888413

b=8,Y=2
a=(1-7)


RollingPig>exec :y:=2
RollingPig>/

  A :B :Y  RESULT
  1  8  2     2356489632
  2  8  2     3611209632
  3  8  2     4865929632
  4  8  2     6120649632
**5  8  2     7375369632
  6  8  2     8630089632
  7  8  2     9884809632

可以发现 a=5,b=8 而Y暂时还有2,3两种可能
16.继续破解
Y=2
7 3 7 5 3 6 9 6 3 2 / 1 2 5 4 7 2 = 5 8 7 8 1
6 2 7 3 6 0             5
-------------------
1 1 0 1 7 6 9            
1 0 0 3 7 7 6           8
-------------------
    9 7 9 9 3 6     
    8 7 8 3 0 4  7
--------------------
    1 0 1 6 3 2 3 
    1 0 0 3 7 7 6 8
---------------------
        1 2 5 4 7 2 
        1 2 5 4 7 2 1

第三行的倒数第2个数字为6
看来又不行了。

Y=3

7 3 7 5 4 2 8 4 1 3 / 1 2 5 4 7 3 = 5 8 7 8 1
6 2 7 3 6 5             5
-------------------
1 1 0 1 7 7 8            
1 0 0 3 7 8 4           8
-------------------
    9 7 9 9 4 4     
    8 7 8 3 1 1  7
--------------------
    1 0 1 6 3 3 1 
    1 0 0 3 7 8 4 8
---------------------
        1 2 5 4 7 3 
        1 2 5 4 7 3 1

大功告成。


TAG:

引用 删除 JOLIN   /   2008-05-11 22:08:37
呵呵
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-07  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 2100
  • 日志数: 444
  • 建立时间: 2007-12-26
  • 更新时间: 2008-09-09

RSS订阅

Open Toolbar