|
|
|
|
 一道智力题,有兴趣者请进。 - mscmm [ 2004-12-13 16:10 | 202 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - kiwen [ 2005-01-27 16:29 | 2,280 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - fazi998 [ 2005-01-05 15:38 | 46 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - fazi998 [ 2005-01-05 15:46 | 313 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - mscmm [ 2005-01-13 15:34 | 181 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - bbwolf [ 2005-01-22 20:10 | 6 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - bbwolf [ 2005-01-22 21:08 | 416 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - bbwolf [ 2005-01-22 22:28 | 64 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - bbwolf [ 2005-01-23 09:37 | 148 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - patience [ 2005-01-29 07:28 | 152 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - echo_her [ 2005-02-20 02:25 | 227 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - dominic_rhce [ 2005-02-20 22:42 | 325 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - ating [ 2005-03-24 18:47 | 63 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - footfly [ 2005-03-16 21:53 | 1,416 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - fazi998 [ 2005-01-05 15:48 | 74 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - WC_CLF [ 2005-01-07 17:40 | 66 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - fazi998 [ 2005-01-08 04:35 | 85 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - WC_CLF [ 2005-01-22 21:22 | 38 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - lonelyflyer [ 2005-01-06 10:45 | 57 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - WC_CLF [ 2004-12-30 10:04 | 141 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - littleboywj [ 2004-12-23 09:36 | 36 byte(s)]
 Re: 一道智力题,有兴趣者请进。 - mscmm [ 2004-12-15 12:51 | 26 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
本题为测试智力的题,如你不曾作过或作过已忘者能自己作出,则智力至少比常人高。
现有12个看上去相同的小球和一个天平,其中有一球重量不同于其他小球,现请只通过称3次就将该小球找出,不能有任何漏洞。
|
|
----
mcmsm
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
Excuse me that the problem might be much harder than I thought ;-(
|
|
----
It's better to burn out than to fade away...
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
自己再尝试回答一次看对不对
第一次:
随机,3 V 3 有两种情况:平衡和失横
平衡: 说明轻球在另外6个 重新3v3
失衡: 在轻球边 随机 1 V 1 根据结果判断 那个时轻球。
perl我不会,,思路应该是这样,请朋友们评判~~
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
我很想知道你的算法,因为你的算法和我的不一样,可是你的回复太简单了,根本就看不出是对还是错,希望回个详细点的。
不过这道题好象只有一种算法,当然能有其他算法会令我很兴奋。
|
|
----
mcmsm
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
我大概说说。这个问题的关键是要找出样本进行对比。各位看看我的想法对错:
3 3 3 3
3个为一堆,分成4堆。
随便找两堆,进行对比。这样范围缩小到2堆。
随便找一堆和前面分出来的2堆里的任意一堆比。如果一样,则证明,不一样的在另外那3个里。3选1,只需一次就可以了。
如果不一样,我也可以知道具体的哪3个,并且可以知道轻重。
最后无论怎样都是3选1,称一次。随便找2个,一称就知道了。
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
#!/usr/bin/perl
use strict;
sub bcmp($$){
my($a,$b) = @_;
my $r = join('',@$a) - join('',@$b);
return $r > 0 ? 1 : $r < 0 ? -1 : 0;
}
for(0..20){
my $n = int(rand 12);
print "$n=";
my @balls = (0,0,0,0,0,0,0,0,0,0,0,0);
$balls[$n] = 1;
my($r,$r2,$r3) = bcmp [@balls[4..7]],[@balls[8..11]];
if($r == 0){
$r2 = bcmp [@balls[0,1]],[@balls[4,5]];
if($r2 == 0){
$r3 = bcmp [$balls[2]],[$balls[4]];
$r3 == 0 and print"3
" and next;
print "2
" and next;
}
else{
$r3 = bcmp [$balls[0]],[$balls[4]];
$r3 == 0 and print "1
" and next;
print "0
" and next;
}
}
else{
$r2 = bcmp [@balls[9,0,7]],[@balls[5,10,11]];
if($r2 == 0){
$r3 = bcmp [@balls[4]],[@balls[6]];
$r3 == 0 and print "8
" and next;
$r == $r3 and print "4
" and next;
print "6
" and next;
}
elsif($r != $r2){
$r3 = bcmp [$balls[5]],[$balls[0]];
$r3 == 0 and print "9
" and next;
print "5
" and next;
}
else{
$r3 = bcmp [@balls[10]],[@balls[11]];
$r3 == 0 and print "7
" and next;
$r3 == $r and print "11
" and next;
print "10
" and next;
}
}
}
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
小意思啊~~
先称8个
IF相等就称剩下的4个,再称2
ELSE IF
称8个里面不相等的4个,再称2,
RETURN (VICTORY)
|
|
----
patience
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
如果知道球的轻重,那么测n次可以测出3^n个球,如果不知道轻重,那么能测的球减半,可以在数学上严格证明
两次测不了五个球,4次可以测40个,三个可以测13个球的,12是个好的数,有很多因子,容易误导人
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
楼主,这题能做得出来的话不是比别人智商高一点点,而是要去非人类研究所研究一下了。
这题做到后面应该等同于当三个对三个不等的时候请用一次机会称出哪个球不同。
前提是由于不知轻重导致的。
如果知道轻重,方法可以有几种。
如果我说错了,还请各位做出来的同志不吝赐教 :)
|
|
|
----
毫不犹豫,钻了进去,属于你了我的LINUX!
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
记得在那个论坛看到过这道题好像原来也是8个球来着,咋变12个了!!!
先分成四堆:L1(4个球); L2(4个球); L3(2个球); L4(2个球);
if L1[:]==L2[:]; # 待测球在L3或者L4中;
# 再用L1或者L2中的两个球与L3或者L4比较;
if L1[:2]==L3[:]; # 待测球在L4中;
if L1[0]==L4[0]; then # 待测球是L4[1];
else # 待测球是L4[0];
else # 待测球在L3中;
if L1[0]==L3[0]; then # 待测球是L3[1];
else # 待测球是L3[0];
else # 如果L1不等L2,待测球在L1或者L2中;天秤状态左沉或者右沉;
if L1[:2]+L2[:2]==L3+L4; # 待测球在L1[2:4]或者L2[2:4]中;
if L1[2]+L2[2]>L1[3]+L3[0] # 与上次天秤状态一致如左沉;
待测球肯定是L1[2];还可得到是重的.
elif L1[2]+L2[2]<L1[3]+L3[0] # 与上次天秤状态不一致如右沉;
待测球肯定是L2[2];还可得到是轻的.
else (L1[2]+L2[2]==L1[3]+L3[0] # 天秤状态平衡;
待测球肯定是L2[3];轻重视上次天秤的状态而定.
else #如果与上次天秤状态一致如左沉;待测球在L1[:2]中;反之L2[:2]中;
if L1[0]==L3[0]; then # 待测球是L1[1];重的
else # 待测球是L1[0];重的
写得比较乱,看起来麻烦还请见凉!!!
|
|
|
----
有书--入书--出书--无书
|
|
[Original]
[Print]
[Top]
|
|
|