haijie1223 发表于 2012-10-28 18:37:15

智力题目

本帖最后由 haijie1223 于 2012-10-28 18:41 编辑

(问题)有十二个乒乓球形状、大小相同,其中只有一个重量与其它十一个不同,现在要求用一部没有砝码的天秤称三次,将那个重量异常的球找出来,并且知道它比其它十一个球较重还是较轻。

答案:
**** Hidden Message *****

A3fan 发表于 2012-10-28 19:19:24

貌似没有回复也看到了答案,奇怪

魔导 发表于 2012-10-28 19:34:06

其实,,,其实小弟不需要三次   也不需要天秤称的办法是:
捧手上就知道了,

lpxx 发表于 2012-10-28 22:09:54

回复 3# 魔导

捧在手里掂吧掂吧...

Qokelate 发表于 2012-10-28 23:44:32

楼上的都是高人呐   像我的话    捧两个乒乓球和捧一个重量上对我来说肯定没感觉{:face (411):}

annybaby 发表于 2012-10-28 23:47:00

很经典的题目~~

wsfda 发表于 2012-10-29 14:01:45

研究研究......

3mile 发表于 2012-10-29 14:08:26

本帖最后由 3mile 于 2012-11-5 19:20 编辑

呵呵,很久以前写过一个12球的代码.
#include <array.au3>
local $a=


if Execute(_ArrayToString($a,"+",0,3))>Execute(_ArrayToString($a,"+",4,7)) Then;说明9,10,11,12标准
        msgbox(4096,0,"第一次左重")
        if $a+$a+$a+$a>$a+$a+$a+$a Then
                msgbox(4096,0,"第二次左重")
                if $a>$a Then
                        msgbox(4096,0,"第三次称重,结果为1重")
                Elseif$a<$a Then
                        msgbox(4096,0,"第三次称重,结果为2重")
                Else
                        msgbox(4096,0,"第三次称重,结果为7轻")
                EndIf
        ElseIf $a+$a+$a+$a<$a+$a+$a+$a Then
                msgbox(4096,0,"第二次右重")
                if $a>$a Then
                        msgbox(4096,0,"第三次称重,结果为6轻")
                Elseif$a<$a Then
                        msgbox(4096,0,"第三次称重,结果为5轻")
                Else
                        msgbox(4096,0,"第三次称重,结果为3重")
                EndIf
        Else
                msgbox(4096,0,"第二次同重")
                if $a>$a Then
                        msgbox(4096,0,"第三次称重,结果为4重")
                Else
                        msgbox(4096,0,"第三次称重,结果为8轻")
                EndIf
        EndIf
ElseIf Execute(_ArrayToString($a,"+",0,3))<Execute(_ArrayToString($a,"+",4,7)) Then
        msgbox(4096,0,"第一次右重")
        if $a+$a+$a+$a>$a+$a+$a+$a Then
                msgbox(4096,0,"第二次左重")
                if $a>$a Then
                        msgbox(4096,0,"第三次称重,结果为5重")
                Elseif$a<$a Then
                        msgbox(4096,0,"第三次称重,结果为6重")
                Else
                        msgbox(4096,0,"第三次称重,结果为3轻")
                EndIf
        ElseIf $a+$a+$a+$a<$a+$a+$a+$a Then
                msgbox(4096,0,"第二次右重")
                if $a>$a Then
                        msgbox(4096,0,"第三次称重,结果为2轻")
                Elseif$a<$a Then
                        msgbox(4096,0,"第三次称重,结果为1轻")
                Else
                        msgbox(4096,0,"第三次称重,结果为7重")
                EndIf       
        Else
                msgbox(4096,0,"第二次相等")
                if $a<$a Then
                        msgbox(4096,0,"第三次称重,结果为4轻")
                Else
                        msgbox(4096,0,"第三次称重,结果为8重")
                EndIf
        EndIf
Else
        msgbox(4096,0,"第一次相等")
        if Execute(_ArrayToString($a,"+",8,10))>Execute(_ArrayToString($a,"+",0,2)) Then
                msgbox(4096,0,"第二次右重")
                if $a>$a Then
                        msgbox(4096,0,"第三次称重,结果为9重")
                ElseIf $a<$a Then
                        msgbox(4096,0,"第三次称重,结果为10重")
                Else
                        msgbox(4096,0,"第三次称重,结果为11重")
                EndIf
        ElseIf Execute(_ArrayToString($a,"+",8,10))<Execute(_ArrayToString($a,"+",0,2)) Then
                msgbox(4096,0,"第二次左重")
                if $a>$a Then
                        msgbox(4096,0,"第三次称重,结果为10轻")
                ElseIf $a<$a Then
                        msgbox(4096,0,"第三次称重,结果为9轻")
                Else
                        msgbox(4096,0,"第三次称重,结果为11轻")
                EndIf
        Else
                msgbox(4096,0,"第二次相等")
                if $a>$a Then
                        msgbox(4096,0,"第三次称重,结果为12轻")
                ElseIf $a<$a Then
                        msgbox(4096,0,"第三次称重,结果为12重")
                Else
                        msgbox(262144+64,0,"你不是在玩我吧,12个球一样重噢!")
                EndIf
        EndIf
EndIf

Neuis 发表于 2012-10-30 10:13:00

将12个分成3份,每份4个,分别为A份,B份,C份,首先任意取出两份进行比较一次,例如取出了A 和B 进行比较,假如A = B 则得知 那个异常球在C 里,然后将A或B 和 C 平均分成2份a1,a2,c1,c2
,分好后假如拿a1和c1进行比较,若相等则异常球在c2,反之在c1,那么再假如异常球在c1,再将c1和c2分两份为c11,c12,c21,c22,去c2里的其中一份和c1的其中一份进行比较,那么结果便得知。

macanchen 发表于 2012-10-30 15:31:23

不知道怎样{:face (427):}

xms77 发表于 2012-10-30 21:44:41

呵呵,知道怎么称,就是不会写代码,囧!

jiushizhu 发表于 2012-11-1 08:17:02

回复下 看看数学题
页: [1]
查看完整版本: 智力题目