wodiannaoduile 2010-03-24 12:33
浏览 529
已采纳

问:有1到100个数字,将这些数字随机放到长度为98的数组中,找出剩余的2个数

有1到100个数字,将这些数字随机放到长度为98的数组中,找出剩余的2个数

  • 写回答

4条回答

  • qwe_rt 2010-03-24 13:19
    关注

    [code="java"]package test;

    import java.util.Random;

    public class RandTest {
    public static void main(String[] args){
    /*
    * 可以考虑先把这100个数放在一个数组内,
    * 每次随机取一个位置(第一次是1-100,第二次是1-99,...),
    * 将该位置的数与最后一个位置(每次都在变化,第一次100,第二次99...)的数对调就可以了。
    */
    int[] arr= new int[100];
    //初始化数组
    for(int i=0;i<=99;i++)
    {
    arr[i] = i+1;
    }
    //随机数
    Random r = new Random();
    //这个for循环,相当如先从100个随机的位置选一个,放在第100个的位置上
    //又随机一个0到98的数作为被选的位置号,选一个后,从剩下99个又选一个放在第99的位置上,
    //一次类推。
    for (int j = 99; j >= 1; j--)
    {
    //j从最后一个位置减少到第二个位置。
    int address = r.nextInt(j);
    //j位置和随机生成位置上的数值对换。
    int tmp = arr[address];
    arr[address] = arr[j];
    arr[j] = tmp;
    }
    //最后,从最后后面位置开始取98个数放入数组
    //第一和第二就是剩下的2个数值。

     //测试输出 
     for(int k : arr){ 
     System.out.println(k+" "); 
     } 
    

    }
    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题