三分法查找假币问题及C语言实现 三分法查找假币问题是一个经典的算法问题,可以通过三分法在一组硬币中找出一个较轻或者较重的假币。假设有一组硬币,其中有一个假币,重量与真币不同,但不知道假币是较轻还是较重。给定一组硬币和天平,最少需要几次称重才能确定假币的重量和假币是较轻还是较重呢? **解题思路**: 1. 如果硬币数量为奇数,则将硬币分成三堆,每堆硬币数量尽量相等。 2. 如果硬币数量为偶数,则将硬币分成三堆,每堆硬币数量尽量相等,多出来的硬币放在一堆。 3. 将两堆硬币放在天平两端称重: - 如果天平平衡,则假币在剩下的一堆硬币中。 - 如果天平不平衡,则假币在较轻的一堆硬币中(如果天平左边轻,则假币轻;如果天平右边轻,则假币重)。 4. 对剩下的一堆硬币重复以上步骤,直到找到假币为止。 下面是一个使用C语言实现的三分法查找假币的示例代码: ```c #include // 假设硬币编号从1开始,num为硬币总数,light为假币编号,isLight表示假币是较轻还是较重 void findFakeCoin(int num, int light
2024-06-25 12:40:43 14KB
1
有n枚硬币 从中找出一个硬币 效率较高的方法 类似于减治法
2023-11-16 19:52:26 229KB n枚硬币 vc++
1
假币资格证书题库.doc
2022-10-04 17:13:32 97KB
1
内含假币算法求解(三分算法和二分算法)源代码
2022-01-02 20:16:11 5KB 算法 假币问题 源代码
1
在n枚硬币中有一枚假币,此算法分别用减二、减三法使用较小的称重次数找出假币的位置(事先不知道假币是比真币轻还是重)
2021-10-31 09:07:41 963KB 算法
1
C语言分治算法求解30枚银币中的某枚假币,简单而言,30枚银币中有1枚假币,该假币的重量比其他29枚银币的重量小1,先将30枚银币平分成两部分,各15枚,分别称重,重量小的那一半银币中必然包含假币,然后再分成两部分,依次类推,直至最后剩下两枚银币,称重后重量小的那一枚即为假币
2021-10-30 13:04:04 44KB C语言 分治算法 求解假银币问题
1
个人设计编写的算法分析与设计中的假币问题,其中用到分治策略。采用三分法。
2021-10-17 15:58:49 10KB 假币 算法分析 设计 假币问题
1
在n枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币,设计一个高效的算法来检测出这枚假币
2021-09-20 01:43:33 1KB n枚硬币 不知轻重
1
2020年反假币试题及答案全套.pdf
2021-06-04 09:03:46 14.18MB 行业
2020年反假币试题及答案全套.docx
2021-06-04 09:03:41 275KB 行业