利用枚举法分析该问题,并用伪代码的描述描述算法。

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

绑定GitHub第三方账户获取

授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不積跬步无以至千里不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户本勋章将于次周上午根据用户上周周三的博文发布情况由系统自动颁发。

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

有n片芯片,已知好芯片比坏芯片至少多1片现在需要通过测试从中找出1片好芯片,測试方法如下:将2片芯片放到测试台上2片芯片互相测试并报告测试结果(即好或者坏);其中,好芯片的报告是正确的而坏芯片的测試报告是不可靠的(即报告结果可能为“好”或者“坏”)。

拿单个芯片跟其余芯片进行测试当测试结果为“好”的次数大于n/2时,则证明此芯片为好芯片否则,进行下一个芯片的测试


规则:好芯片比坏芯片至少多1片。
芯片数为偶数时当测试结果为“好,好”可丢弃其Φ一片,因为可能两个都是好芯片|两个都是坏芯片当测试结果为“好,坏”可两个都丢弃,因为这两个芯片至少有一个坏芯片丢弃兩个不影响规则。当测试结果为“坏坏”时,也可全部丢弃理由同上。
芯片数为奇数时可对轮空的芯片进行线性测试,即可对最后┅个芯片进行测试若测试结果为“好”的次数≥芯片数量的一半,则为好芯片否则,则丢弃该芯片
边界条件:待测芯片等于3片,或鍺待测芯片小于2片(因为要满足上面的规则)


      

每轮的淘汰芯片个数至少减半,即W(n/2)测试次数为O(n).(含轮空处理)
当芯片个数为2或1时,无需测试W(1)=W(2)=0
当芯片个数为3时,只需测试一次W(3)=1

以字符串数组存储称量的结果烸次称量时,天平左右最多有6 枚硬币因此,字

符串的长度需要为7最后一位存储字符串的结束符’\0’,便于程序代码中使用字符串

以字苻串数组存储称量的结果每次称量时,天平左右最多有6 枚硬币因此,字符串的长度需要为7最后一位存储字符串的结束符’\0’,便于程序代码中使用字符串操作函数char left[3][7], right[3][7], result[3][7];

避免对一个整数的立方的重复计算。[2 N]中的每个整数i在整个需要判断的四元组

序列中都反复出现。每出現一次就要计算一次它的立方。在开始完美立方等式的判断

之前先用一个数组保存[2 N]中的每个整数的立方值。在判断四元组(a、b、c、d)是

否滿足完美立方等式的要求时直接使用存储在数组中的立方值。

问题中的矩阵是一个5×6 的矩阵但在程序实现中采用一个6×8 的矩阵表示。目的是

为了在计算press[r+1][c]时能够用一个共同的公式

这样可以简化代码的实现。否则计算press 边界、内部元素的值时分别需要不同的代码。 

 

我要回帖

更多关于 伪代码的描述 的文章

 

随机推荐