本帖最后由 tengyun_20 于 2011-03-08 17:50:57 编辑

解决方案 »

  1.   

    补充下,以上是假设平民都互相不认识,不过这样不太好,
    应当更改为:最差劲的情况下,揪了49组都没找出明星,剩下的一组里必定有明星.....balabala...
      

  2.   

    99x1+98x1+97x1,相当于从1加到99满意了吧
      

  3.   

    每次抽出两人 ab问他们是否互相认识如果 qkniit的假设正确 那么以下结果             a认识b                   a不认识b
    b认识a       两平民                    a明星
    b不认识 a    b明星                     两平民但如果 平民中也存在单向认识的 那么就是这样的结果。最坏的情况是存在 1个被98人单向认识的平民(明星不认识)
                 a认识b                   a不认识b
    b认识a       两平民                    b是平民
    b不认识 a    a是平民                    两平民那么最坏结果如下
    100问   剩下50人
    50问    剩下25人
    24问    剩下13人
    12问    剩下7人
    6问     剩下4人
    4问     剩下2人
    1问     确认。最多187问即可
      

  4.   

    //假设第一个人为明星
    int supsatr=1;
    //问题次数
    int count=0;
    for(int i=2;i<=100;i++)
    {
        //问supsatr是否认识i
        count++;
        if(认识)  //则假设错误,i可能为supsatr
            supsatr=i;
    }
    System.out.println("明星为:"+supsatr);
    System.out.println("提问次数:"+count);