วันพุธที่ 24 กันยายน พ.ศ. 2557

Lab 3 - Random Values in an array (with parameter to specify duplicate values are allowed)

โปรแกรมสุ่มค่าให้ Array โดยที่สามารถเลือกได้ว่าค่าที่สุ่มมาสามารถที่จะซ้ำหรือไม่ซ้ำกันได้




void setup(){
  int[] K = new int[5];
  RandomValueInArray(K,5,9,true);
  PrintArray(K);
  RandomValueInArray(K,5,9,true);
  PrintArray(K);
  RandomValueInArray(K,5,9,true);
  PrintArray(K);
  RandomValueInArray(K,5,9,false);
  PrintArray(K);
  RandomValueInArray(K,5,9,false);
  PrintArray(K);
  RandomValueInArray(K,5,9,false);
  PrintArray(K);
}
void RandomValueInArray(int[] a,int min,int max,boolean AllowDuplicate){
  if(AllowDuplicate){
    for(int i=0;i<a.length;i++){
      a[i] = int(random(min,max+0.9999999));
    }
  }
  else{
    a[0] = int(random(min,max+0.9999999));
    for(int i=1;i<a.length;i++){
      a[i] = int(random(min,max+0.9999999));
      CheckDuplicate(a,i,min,max);
    }
  }
}
void PrintArray(int[] a){
  print("K = {"+a[0]);
  for(int i=1;i<a.length;i++){
    print(","+a[i]);
  }
  println("}");
}
void CheckDuplicate(int[] b,int n,int min,int max){
  boolean Duplicate = true;
  while(Duplicate){
    Duplicate = false;                                                    
    for(int i=0;(i<n)&&(!Duplicate);i++){
      if(b[i]==b[n]){
        b[n] = int(random(min,max+0.9999999));
        Duplicate = true;
      }
      else{
        Duplicate = false;
      }
    }
  }
}