想象思维的真正问题

可以做三遍。

羽凡仙的回答(不管是自己写的还是从某处抄来的)确实是对的。我在草稿纸上画了一个树形图,从头到尾仔细分析了一遍。

半小时验证一个答案是否正确对我来说没问题。但是我自己要想出这样的答案,我觉得很难在一个小时内完成。至于想出更好的答案,我不指望了。

所以我只想说说我的感受,做个简单的评论。

第一秒我真的很想把12分成两个六,但是我马上意识到这是不可能的(我有点惊讶这么多人提交这个答案);然后想分三组进行,仔细做了三遍才发现做不到;然后突然想到,虽然一开始不知道次品的重量,但是可以记录下每次的结果。有了这个,我也许能控制在三次以内。我做到了,我做到了,我高兴了不到一分钟,我发现我错了——我居然做了九块砖。(回想起来,大概是受简单迭代和递归思维习惯的影响。)

于是我又做了一遍,发现按照惯例,如果12砖块第一次重量相等,后面的分支就容易了,而且都在3次以内;但是如果第一个音阶不相等,就很难了。脑子清楚,说要做四遍的人,大概都卡在这里了。但是很多时候,即使我们到目前为止没有找到任何可行的方法,也不证明没有可行的方法。当然,关于一件事的可行性或不可行性,是有证明的;但遗憾的是,这里说三遍不可行的人,并没有真正证明没有可行的方法。

于是我仔细看了羽扇仙子的回答。我想既然写的这么详细(虽然繁琐),这个人一定花了一些时间去验证。不要忽视别人的劳动成果(我看的时候不知道是不是抄袭的)。确实这个回答比较复杂,但是比那些只有一两句话的回答好多了。对于随便写一个想当然的答案,没有耐心看其他答案的人,我想说:这种工作一点也不能夸张;如果真的能证明,应该能把详细的过程写出来,同时要有耐心看这么详细的作品。(当然,如果你不在乎这些东西,没有耐心也没关系,那就把它们当做过眼云烟,用玩票的态度去对待。反正不是你的工作,也不是论文审稿。)

回到羽扇仙子的回答。一群人因为没有耐心而气馁。还有人可能看到中间看不清,可能是排版的一些问题影响了阅读。此外,僵化的“如果...然后...否则……”做法好像挺恶心的(习惯了这些东西,麻木了的程序员不会觉得恶心,也许是因为审美更深,也许是因为没胃口倒下)。题目本身的难度和解法本身的复杂可能是更大的原因:在这个名实不对等的分支中,解法是正确的,但并不直观,需要看的人要慢慢理顺(最好画个树状图来分析)。这里就不写了。既然楼主已经知道三次是可能的,那肯定是经过验证的,我也不需要多费口舌了。对于其他读者来说,如果我写得不够详细,不妨看看原答案;太详细太罗嗦了。正确答案已经在那里了。如果你有心,与其花时间看我写的东西,还不如花时间自己去理顺。这不需要什么过人的创造力,只需要一丝不苟和耐心(我相信这里的人从一开始就很有耐心)。

真正原创的可能是小朱36955的回答。虽然我第一眼就不以为然,但第二眼就知道答案不符合问题的意思。就像pjw258说的,跷跷板的次数被非法使用了(如果我们以“正确”的方式使用,也就是我们解决这个问题时的默认方式,小朱36955的回答不能保证在3次以内,只能在6次以内(。但是,这个解决方案成功跳出了我们默认的框框,发挥了创造性。虽然我们需要突破很多约束才能想到羽扇仙子的答案,但都不是同一层面的突破。其实如果真的要在真实场景中找到重量异常的砖块,我宁愿用小朱36955的方法,简单易行;羽扇仙的方法说的次数少,但是称重前后脑子里有很多弯,还要记录称重的结果,不断的回顾对比。有了这个闲暇时间,我已经找到了小朱6955(或者其他笨办法)的砖头。但如果任务不是称砖,而是称吨钢,花点时间思考如何最大限度减少称量次数以降低成本还是很实际的;比如砖还是要称重的,但不是一次性的,而是每批货都要检验重量异常的砖。所以第一次花时间想出最小称量次数的方法并使之程序化是很方便的。)?

给我两天时间,我会给你答复。如果两天后我没有提供任何答案,或者给出的答案是错的,那么把分数给pjw258。?

在给出我的答案之前,我先简单评论一下这几天出现的四个新答案。

新的答案是:

1,QQ850912617(以下简称QQ同学)-第一次5:5。

2、江第一次胖成人——4:4;如果不相等,第二次称重会把一边的四个分成两份放在跷跷板的两边,另一边的四个取两个放在跷跷板的两边。

3、278102649(以下简称27位同学)-第一次4:4;如果不相等,第二次称重会从左边取一个,从右边取一个,左右颠倒。

4.1645425-扭矩平衡解决方案

这最后一个不是标准解决方案,但正因为如此,它才非常有趣。我不禁叫1645425物理小王子。希望你再接再厉,发明更多更新颖的物理名称。

第一个和第三个都不能叫。其实在掌握了我下面给出的一般方法(没错,我给出的是一般方法,适用于所有用天平在N块砖中寻找唯一不良品的问题)后,很容易看出,如果在三次内完成在12块砖中寻找1不良品,第一次称重只能是4:4,每边的数量不能大于4。所以QQ同学第一次称重的时候,就注定了三次都完成不了。27名学生的错误发生在第二次称重,不是一个“好像差不多”的问题。如果不改变第二次称重方案,三次之内绝对完成不了。这些都可以按照我给的方法来证明。

姜胖的方法可以做,但是细节上有错误。大人们的原话是这样的:“假设第一次左边是1234,那么第二次就是127和348。如果是平衡的,那么变态球在56里和光;如果还是左边重,那么128异常球重;如果右侧重,那么异常球在347而轻。”仔细分析发现,如果左侧(或右侧)重,只能说异常球在128(或在347);加上“且为重(且轻)”不仅多余,而且错误。(当然,在平衡的情况下,“变态球在56和光”的说法是正确的。)如果抛开这些错误,那么蒋庞先生的方法是唯一的,即在第一次称重不平衡的情况下,第二次称重除了这八块砖(即第一次称重后已被证明正常的四块砖)之外,不需要任何砖。

当然楼主见过两种不同的方法,其中一种大概和姜胖一样。

以下是我的回答:

先别做。做之前先分析一下称重的作用。每次称重的作用是排除一些可能性,缩小搜索范围,确定重量异常的不良品在哪个范围,确定下一步如何称重。而要做到这一点,仅仅通过观察称重的结果。每次称重的结果最多有三种可能:left >;对;左=右;左<右。但是,因为我们不知道哪个更重要,所以左和右对我们做决定没有任何影响。只能说双方平等或者不平等。但是,如果前一次称重的结果不相等,那么这次称重的结果与前一次称重的结果相比可以区分为三种可能,也就是说,此时是左大于右还是右大于左,在前一次称重不相等的背景下具有区分的意义。

所以每次权衡的时候,你或许能分辨出三种可能和两种可能。能分辨出多少种可能性,就会有多少分支。当然,还有一种只有一种可能结果的权衡:所谓只有一种可能结果的权衡,也就是在这种权衡之前,我们可以推断出它是一种什么样的结果。当然,这样的称重是没有用的,所以不要在只有一种可能结果的称重上浪费称重时间。

除去这个没用的称重,每个称重旁边可能还有两三个分支。更准确地说,如果以前从未有过不平等的加权,那么在当前的加权中最多只能有两个分支——平等或不平等;如果之前有过不平等称重,那么这次称重最多可以有三个分支——平等,与之前的不平等称重方向相同或相反。

现在,让我们确保标记被使用。a和B是两组,它们的元素都是砖。A:B的意思是将A中的所有砖块放在跷跷板的左侧,B中的所有砖块放在跷跷板的右侧,以便称重。我们用g(A)来表示A的重量,g(A)=g(B)来表示跷跷板平衡。现在我们要考虑:不平衡时应该用什么标志?我们可以用g(A)≠g(B)来表示跷跷板式的不平衡,但为了与未来称重中可能出现的不平衡(方向一致或不一致)进行比较,我们采用这种记法:A∧B表示G (a) > G (b)(或G(A)< G(B));相应地,我们引入A∨B,意思是g (a) < g (b)(或者g (a) > g (b))。也就是说,∧表示大于或小于,但是否大于或小于是不确定的,也不重要。重点是当∧表示“大于”时,∨表示“小于”;∧表示“小于”时,∨表示“大于”。当然,我们也可以使用其他符号:

1,每次不平衡直接说“大于(或小于)”和“小于(或大于)”。

2.用∧∨这样的一对符号来表达1中的意思;

3.只用一个符号(如∧),但说A和B不平衡时,要详细说出是A∧B还是B∧A,以示区别。

注意两点:

首先,上面2和3中的符号应该表示反对称关系。([?r是反对称的?]?当且仅当?[?对于任意xy,如果xRy为真,yRx为假?]),上面的< >∧ ∨就是这样的关系。And =和≠是对称的(【?r是对称的?]?当且仅当?[?对于任意xy,如果xRy,yRx?]。)

第二,2中的两个符号所代表的两个反对称关系应该是互为镜像的。设s和r是反对称的。[?s和r互为镜像?]?当且仅当?[?对于所有xy,xSy是当且仅当yRx?]。)

当使用一对互为镜像的符号,且比较双方已知时,我们采用以下缩写:比较A:B时,“A∧B”缩写为“∧”,“A∨B”缩写为“∨”同时,“A=B”也是我们可以使用自己喜欢的标记,只要不引起歧义。比如我第一次在草稿纸上写字的时候,只用了一个向上的箭头,写字的时候就写“A ↑ B”和“B↑A”;后来上下箭头并用(↑↓),写字时只写“↑”或“↓”。或者,可以用0代替=用1代替∧,用-1代替。

接下来我会引入一个树形图来帮助解决问题,它会贯穿下面所有的证明。

树形图由有限个点和有限条线组成,每条线从上到下连接两个点,其中上一点称为下一点的父节点,下一点称为上一点的子节点。没有任何父节点的点称为根。一棵树有且只有一个根节点。除了根节点以外,每个点都有且只有一个父节点。每个点可以有几个子节点,子节点之间没有连线。没有任何子节点的点称为叶子。如果从根节点到达一个节点需要n条线,那么这个节点在第n层(注意:根节点在第0层)。树的每个节点的最高级别是树的深度。

我们要用的树是这样的,但是为了满足这个问题的具体需求,我们需要做一些细化。

假设我们想从砖块集合u中找出异常元素,我们让树的每个节点对应一个二元群< X,Y >。其中x是u的子集,表示在所有前面的步骤之后该异常元素所属的范围;y表示A:B称重运算,其中A和B是U的子集,A和B没有交集,A和B的元素个数应该相等(我们不知道正常和异常砖块的重量比,也没有使用力矩称重法,所以只能在跷跷板两边放相同数量的砖块)。而且每个叶节点对应U的一个子集,而且是一个单位集(即只包含一个元素的集合),所以不需要对叶节点进行加权运算,因为它已经确定了是哪个异常元素。以后在没有歧义的地方,我们就简单的把一个节点对应的判断和运算称为判断和运算。我们还需要用= ∧∨标记每一行。它们代表这条线上端的操作结果。如果上端的运算是A:B,那么= ∧∨分别表示g(A)=g(B),A∧B,A∨B。标有不同标记的线通向相应的下端,用于判断或操作。从现在开始,我们有时称一棵树为策略。

我们之前说过,如果一次称重之前没有至少一次不相等的称重结果,那么这次称重最多只能分为两种可能;否则最多能区分三种可能。也就是说,如果一条线在一个节点前没有被标记为∧或∨(这条线后面不一定是这个节点,但必须能通过这个节点向上传递),那么这个节点的分支数最多是两个;否则,最多只能有三个分支。现在,根据这个规则,我们从一个根节点向下分支,使深度不超过3。最大化每个节点下的分支数和树的深度,得到下面的树形图。

这棵树有***14个叶节点,但不可能在三次内从14块砖中找到一块重量异常的砖,因为需要考虑以下限制。

如果只关注每个节点处的判断集,即异常砖所属的集合,那么下面的条件限制了每个节点处的集合(但不是所有的限制)。

首先,一个策略的叶节点必须都是单位集,否则这个策略还是不完整的;

其次,一个节点上的集合只是划分为其子节点上的集合,即一个节点的子节点上的集合互不相交,这些子节点对应集合的并集等于该节点上的集合;

第三,一个节点下所有叶节点的个数必须等于该节点对应的集合的基数(即其元素个数)。

(第三点可以从前两点推导出来)

我们看到这棵树的根节点被分成两个子树,左边的子树有5个叶节点,右边的子树有9个叶节点。根节点上的集合是U(即任务开始时给定的砖的集合),而根节点上的运算是A:B,其中A和B是U的子集,互不相交。根节点向下分支,分别对应A=B时的运算和A∧B时的运算。若A=B,则异常砖一定不在A或B中;所以分支A=B下的子节点上的集合等于U-(A∪B)。若A∧B,则异常砖一定在A或B中;所以分支A∧B下的子节点上的集合等于A ∪ B,由于A和B的基数相等,假设A的基数为a(a为正整数),则A∪B的基数等于2a。因此,右边子树下的叶节点数必须是偶数。有了这个限制,并且知道深度为3的树的右边子树最多有9个叶节点,我们知道右边子树最多有8个叶节点。8,左子树5的叶节点数加起来是13。这证明三步之内没有策略,可以找出14砖块中的异常砖块。

从上面的设置我们还可以知道,如果U的基数为W,那么U-(A∪B)的基数为(w-2a)(因为A的基数为A,A和B的基数相同),即左子树的叶节点数等于w-2a,由于深度不超过3的树的左侧叶节点数最多为5,所以W-2A≤5;同理,右边子树的叶节点数应该等于2a,由于深度不超过3的树左边的叶节点数最多为9,所以2a≤9。解为(w-5)/2≤a≤9/2。如果w=12,A只能是4(如果w=13,A只能是4)。

(未完待续。不好意思,我今天拉肚子,不然现在就写完了。上面已经证明的结论:如果在N块砖中发现一块异常砖,并能在三次内完成,则N不能大于13;当n=12时,第一次称重必须是4:4。明天将证明当n=12时,有10个方案可以完成三次;当n=13时,有12个方案可以完成三次。我相信根据我上面给出的线索,很多人已经知道该怎么做了。)