1. 程式人生 > >蒙特卡羅演算法解決兩集合相等問題

蒙特卡羅演算法解決兩集合相等問題

問題描述:給定兩集合S和T,試用蒙特卡羅演算法實現對S和T是否相等的判斷。

(集合S和T,可以為一維陣列形式)

public static boolean collectionEqual(int[] s,int[] t){
        if(s.length!=t.length)  return false;
       for(int i=0; i<s.length; i++){        //ps:集合元素過大,s.length會致使計算機運算量越大,但判斷的結果越準確。
             rnd = new Random();
             int j = rnd.random(s.length)+1;
             int x = s[j];       //隨機選擇陣列s中元素
            for(int i=0; i<s.length; i++){
                if(x==t[i])  break;
                if(i==s.length-1)  return false;
           }
        }
      return ture;     //集合S和T相等
}