1.编程题:设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序;要求用java实现2.(1)根据用户输入的n(2<n<8)个整数,列出所有不重复的排列组合.(注用户输入的数据可能有重复,忽略用户输入的重复数据)(2)根据用户输入的n(2<n<8)个整数,列出所有不重复的数据组合.(注用户输入的数据可能有重复,忽略用户输入的重复数据)(3)已知第一题的输出数据.求用户输入的数据(排除重复).(4)选用前序,中序,后序实现一个二叉树遍历.  
3.随机产生20个三位数如A1A2A3  ( 0<= A1<=9, 0<= A2<=9,0<= A3<=9),其中A1,A2,A3的数据分布是随机的,也是等概率的(即A1,A2,A3为0~9的机会相等)。因此这个三位数的奇偶分布,素合分布,A1+A2+A3之和分布,Max(A1,A2,A3)- Min(A1,A2,A3)之差分布,A1,A2,A3除以3余数分布等应该满足一定的规律。用Java编程实现:
1.随机产生20个这样的三位数
2.将这20个数字排序(增序)
3.分析产生的20个三位数的上述5个分布的数据。
4.找出理论上上述5个分布的规律数据
5.根据分析得到的数据,根据得到的数据和规律的吻合性,预测随机产生的第21个三位数子集(可能性为1000个,000~999),要求预测产生的子集S, |S|<=300个(即这个子集的数目小于等于300个)。

解决方案 »

  1.   

    这是第一题的答案
    package n120_RandomFileTest;
    /**
     * @author Administrator
     * @060812
     */
    import java.io.*;//import DataOutput,Datainput interface and IOException,
    //DataOutputStream,FileOutputStream,RandomAccessFile class.
    import java.util.*;
    public class n120_RandomFileTest {
    public static void main(String[] args){
    int n = 12;
    int m = 7;
    ArrayList ls = new ArrayList();
    for(int i=1;i<=n;i++){
    ls.add(i);

    }
    n120_RandomFileTest obj = new n120_RandomFileTest();
    obj.PrintList(ls,m);

    }
    public void PrintList(ArrayList ls,int m){
    int i=0;
    while(!ls.isEmpty()){
    for(int j=1;j<m;j++){
    i++;
    if(i>=ls.size()) i = 0;
    }
    System.out.println(""+ls.get(i) +"\r\n");
    ls.remove(i);
    i = i-1;

    }

    }
    }