参考答案和解析
正确答案:A
更多“现在有16枚外形相同的硬币,其中一枚是假币,且已知假币比真币重量轻。先给定一架没有砝码的天平,问 ”相关问题
  • 第1题:

    阅读下列说明和C代码,回答问题?1?至问题?3,将解答写在答题纸的对应栏内。
    【说明】
    假币问题:有n枚硬币,其中有一枚是假币,己知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。
    【分析问题】
    将n枚硬币分成相等的两部分:
    (1)当n为偶数时,将前后两部分,即?1...n/2和n/2+1...0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币:
    (2)当n为奇数时,将前后两部分,即1..(n -1)/2和(n+1)/2+1...0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第?(n+1)/2枚硬币是假币。




    【问题一】(6分)
    根据题干说明,填充C代码中的空(1)-(3)
    【问题二】(4分)
    根据题干说明和C代码,算法采用了( ??)设计策略。
    【问题三】(4分)
    若输入的硬币数为30,则最少的比较次数为( ?),最多的比较次数为( ??)。


    答案:
    解析:
    【问题一】(6分)
    (1)first+(last-first)/2 或(first+last)/2
    (2)firstSum(3)first+(last-first)/2 或(first+last)/2

    【问题二】(4分)
    分治法、O(nlogn)

    【问题三】(4分)
    2、4

  • 第2题:

    现有n枚外观相同的硬币和一架天平,已知硬币中有一枚重量较轻的硬币是假币,要求设计一个高效的算法来检测出这枚假币。请写出分治法求解该问题的详细步骤,并分析其时间复杂性。


    B 解析:用分治法找假币的过程为:先将16枚硬币对等分为2堆(各8枚)并比较其重量,假币在较轻的那一堆中;然后将8枚硬币对等分为2堆(各4枚)并比较其重量,假币在较轻的那一堆中;再将4枚硬币对等分为2堆(各2枚)并比较其重量,假币在较轻的那一堆中;最后比较两个硬币的重量,找出假币。因此,至少比较4次才能够找出该假币。

  • 第3题:

    设有2020个大小相同的金币,其中有一枚为假币,假币比真币轻。通过天平称量的方法来检测,问至少必须称()次?

    A.11

    B.7

    C.10

    D.8


    ABCD

  • 第4题:

    设有15个大小相同的金币,其中有一枚为假币,只知道假币的重量与真币不同。通过天平称量的方法来检测,问至少必须称()次?

    A.3

    B.4

    C.5

    D.1


    4

  • 第5题:

    6、有12枚一模一样的硬币,现在需要用一个天平把假币从这12枚硬币中找出来,问下列说法哪个是正确的。

    A.只要假币与真币相比重量不一样,且已知其中只有一枚是假币,就可以求解。

    B.只要已知假币与真币相比重量不一样,就可以求解。

    C.只要已知其中只有一枚是假币,就可以求解。

    D.在已知其中只有一枚是假币的情况下,如果已知假币与真币重量不一样,但是不知道假币是轻还是重,那么是绝对不可能只称三次就找出假币的。


    只要假币与真币相比重量不一样,且已知其中 只有一枚是假币, 就可以求解。