精品日本亚洲一区二区三区,99久久精品免费观看国产,99久久免费精品,亚洲精品国产一区二区成人,日本亚洲精品一区二区三区四区,国产亚洲精品成人久久网站,久久亚洲男人第一AV网站,精品国产高清一区二区广区,久久精品五月天很黄很艳女TV

考研論壇

 
查看: 1432|回復: 21
打印 上一主題 下一主題

(Mutimedia Dr)第1次算法設計作業

[復制鏈接]

215

主題

8711

帖子

6萬

積分

論壇元老

傳說此人已不在江湖

Rank: 7Rank: 7Rank: 7

精華
16
威望
55419
K幣
5637 元
注冊時間
2010-3-5

2016年優秀版主2015年下半年優秀版主2015年上半年優秀版主2014年下半年優秀版主考研論壇2013年下半年優秀版主考研論壇2013年上半年優秀版主

跳轉到指定樓層
1
發表于 2012-10-31 13:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 * 于 2012-10-31 13:45 編輯


2 Stable Matching
import java.util.ArrayList;
import java.util.List;
public class StableMatch {
      privateint[][] mPref;
      privateint[][] fPref;
      privateint[] pos;//儲存位置
      privateint count;
      publicStableMatch()
      {
      }
      publicStableMatch(int n)
      {
             mPref= new int[n][];
             fPref= new int[n][];
             count= n;
             for(int i = 0; i < n; i++) {
                    mPref= randomIni(n);
                    fPref= randomIni(n);
             }
      }
      publicint[] randomIni(int n)
      {
             int[]result = new int[n];
             Listlist = new ArrayList(n);
             for(inti=0; i<n;i++)
             {
                    list.add(i);
             }
             for(int i = 0; i < n; i++) {
                    intindex = (int)(Math.random() * list.size());
                    result= (Integer)list.get(index);
                    list.remove(index);
             }
             returnresult;
      }
      publicstatic void main(String[] args) {
             //TODO Auto-generated method stub
             while(true)
             {
                    StableMatchsm = new StableMatch(3);
                    int[][]result = sm.doMatch(true);
                    int[][]result1 = sm.doMatch(false);
                    if(resultTest(result[0],result1[0]))
                           break;
             }
      }
      publicint[][] doMatch(boolean flag)
      {
             int[][]result = new int[2][count];
             pos= new int[count];
             for(int i = 0; i < pos.length; i++) {
                    pos= -1;
             }
             for(int i = 0; i < result.length; i++) {
                    for(int j = 0; j < result.length; j++) {
                           result[j] = -1;
                    }
             }
             //Initiallyall man, and wom are free.
             if(!flag)
             {
                    int[][]temp = fPref;
                    fPref= mPref;
                    mPref= temp;
             }
             intmcount = findFree(result);
             while(mcount!= -1)
             {
                    intmpos = mPref[mcount][++pos[mcount]]; //向第mpos個女的求婚
                    if(result[1][mpos]== -1) //第mpos個女的沒有訂婚
                    {
                           result[0][mcount]= mpos;
                           result[1][mpos]= mcount;
                           mcount= findFree(result);
                           continue;
                    }else//第mpos個女的訂婚了
                    {
                           if(!judge(mpos,mcount,result))//第mpos比當前的好
                           {
                                  result[0][result[1][mpos]]= -1; //結束訂婚
                                  result[1][mpos]= mcount;//與mcount訂婚
                                  result[0][mcount]= mpos;//與mpos訂婚
                                  mcount= findFree(result);
                           }
                    }
             }
             returnresult;
      }
      publicint findFree(int[][] result)
      {
             intindex = -1;
             for(int i = 0; i < result[0].length; i++) {
                    if(result[0]==-1)
                    {
                           index= i;
                           break;
                    }
             }
             returnindex;
      }
      //判斷向windex求婚的人是否比當前的男的好
      publicboolean judge(int windex,int mindex,int[][] result)
      {
             booleanflag = false;
             intcur = result[1][windex];
             for(int i = 0; i < mPref[windex].length; i++) {
                    if(cur== mPref[windex])
                    {
                           flag= false;
                           break;
                    }
                    if(mindex== mPref[windex])
                    {
                           flag= true;
                           break;
                    }
             }
             returnflag;
      }
      publicstatic boolean resultTest(int[] a,int b[])
      {
             for(int i = 0; i < a.length; i++) {
                    if(i!= b[a])
                    {
                           returnfalse;
                    }
             }
             returntrue;  }
}
對于每個事例都有file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png,是錯誤的,舉一個反例。
男生的喜好矩陣
[[0, 1, 2], [1, 2, 0], [2, 0,1]]
女生的喜好矩陣
[[0, 1, 2], [1, 0, 2], [0, 1,2]]
男生主動的匹配
[[1, 2, 0], [2, 0, 1]]
女生主動的匹配
[[0, 1, 2], [0, 1, 2]]
從上可以看出男生主動第0個男生與第1個女生匹配,而女生主動第一個女生與第一個男生匹配因此對于每個事例都有file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png,是錯誤的
4 Complexity Analysis
算法實現:
public class HHindex {
    publicstatic void main(String[] args) {
       //TODO Auto-generated method stub
       Stringstr = "8,4,3,5,6,2";
       String[]temp = str.split(",");
       int[]array = new int[temp.length];
       int[]result = new int[temp.length];
       for(int i = 0; i < array.length; i++) {
           array= Integer.parseInt(temp);
           result= 1;
       }
       for(int i = 1; i < result.length; i++) {
           if(array> array[i-1])
           {
              intn = result[i-1];
              result+=result[i-1];
              while(i-1-n>=0&&array > array[i-1-n])
              {
                  result+=result[i-n];
                  n+=result[i-n];
              }
           }
       }
       System.out.println("ok!!!");
    }
}

    -------------------------------------------------------------------
    個人文章匯總
    -------------------------------------------------------------------
    回復

    使用道具 舉報

    134

    主題

    2萬

    帖子

    0

    積分

    大區版主

    咩咩咩。。。很萌有木有。。。

    Rank: 8Rank: 8

    精華
    29
    威望
    1165984
    K幣
    44347 元
    注冊時間
    2010-11-25

    大區版主考研論壇2013年下半年優秀版主

    2
    發表于 2013-4-27 16:56 | 只看該作者
    本來還好。。。看了以后突然很頭疼。。。怎么搞。。。暈。。。
    回復

    使用道具 舉報

    74

    主題

    1萬

    帖子

    5萬

    積分

    論壇元老

    [Travel拉面館]饅頭哥哥

    Rank: 7Rank: 7Rank: 7

    精華
    5
    威望
    39621
    K幣
    14450 元
    注冊時間
    2011-3-11
    3
    發表于 2013-5-15 17:00 | 只看該作者
    panda2029 發表于 2013-4-27 16:56
    本來還好。。。看了以后突然很頭疼。。。怎么搞。。。暈。。。

    噗。哈哈。。。。。
    我覺得還好啊。。。
    因為神馬都不懂╮(╯▽╰)╭
    一分一分,攢到結婚
    回復

    使用道具 舉報

    134

    主題

    2萬

    帖子

    0

    積分

    大區版主

    咩咩咩。。。很萌有木有。。。

    Rank: 8Rank: 8

    精華
    29
    威望
    1165984
    K幣
    44347 元
    注冊時間
    2010-11-25

    大區版主考研論壇2013年下半年優秀版主

    4
    發表于 2013-5-15 17:05 | 只看該作者
    可可米露 發表于 2013-5-15 17:00
    噗。哈哈。。。。。
    我覺得還好啊。。。
    因為神馬都不懂╮(╯▽╰)╭

    算法。。。虐人。。。我神經衰弱了。。。

    ?中國地質大學(武漢)?歷年真題匯總、初復試經驗
    越?玫瑰?越幸福

    要么讀書,要么旅行,身體和靈魂,必須有一個在路上
    聯系我:咩咩咩
    回復

    使用道具 舉報

    74

    主題

    1萬

    帖子

    5萬

    積分

    論壇元老

    [Travel拉面館]饅頭哥哥

    Rank: 7Rank: 7Rank: 7

    精華
    5
    威望
    39621
    K幣
    14450 元
    注冊時間
    2011-3-11
    5
    發表于 2013-5-15 17:08 | 只看該作者
    panda2029 發表于 2013-5-15 17:05
    算法。。。虐人。。。我神經衰弱了。。。

    所以改行是對滴~~~


    這個算法的結果是神馬??有結果么??
    一分一分,攢到結婚
    回復

    使用道具 舉報

    74

    主題

    1萬

    帖子

    5萬

    積分

    論壇元老

    [Travel拉面館]饅頭哥哥

    Rank: 7Rank: 7Rank: 7

    精華
    5
    威望
    39621
    K幣
    14450 元
    注冊時間
    2011-3-11
    6
    發表于 2013-5-15 17:09 | 只看該作者
    是個神馬故事?????白雪公主???????
    回復

    使用道具 舉報

    134

    主題

    2萬

    帖子

    0

    積分

    大區版主

    咩咩咩。。。很萌有木有。。。

    Rank: 8Rank: 8

    精華
    29
    威望
    1165984
    K幣
    44347 元
    注冊時間
    2010-11-25

    大區版主考研論壇2013年下半年優秀版主

    7
    發表于 2013-5-15 17:10 | 只看該作者
    因為每個女生最中意的男生都不同,所以只要讓女生們都選擇跟自己最中意的男生在一起,她們就都不會有和其他男生私奔的想法。雖然男生們會表示略苦逼啊!仍然不失為一個stable matching。。。。。  
    回復

    使用道具 舉報

    134

    主題

    2萬

    帖子

    0

    積分

    大區版主

    咩咩咩。。。很萌有木有。。。

    Rank: 8Rank: 8

    精華
    29
    威望
    1165984
    K幣
    44347 元
    注冊時間
    2010-11-25

    大區版主考研論壇2013年下半年優秀版主

    8
    發表于 2013-5-15 17:11 | 只看該作者
    第一天早上:所有男生都向自己最中意的女生表白。  

    第一天中午:每個女生都被表白了n次(可能是0次)之后,拒絕了相對不太中意的那n-1位,hold住其中最中意的那位。。。即暫時不答應也不拒絕  

    第一天晚上,被拒絕的男生們在自己的preference列表中劃掉了那個拒絕他的人。。。  



    第二天早上:所有沒有被hold住的男生都向自己最中意的女生(無視已經被劃掉的)表白。  

    第二天中午:女生們在那些向她表白的男生和已經hold住的那男生中選擇最中意的一位,拒絕掉其他的。  

    第二天晚上:被拒絕的男生們在自己的preference列表中劃掉拒絕了自己的人。。。。  



    第三天,重復同樣的過程。。。  

    第四天。。。。  

    。。。。。。。  

    回復

    使用道具 舉報

    134

    主題

    2萬

    帖子

    0

    積分

    大區版主

    咩咩咩。。。很萌有木有。。。

    Rank: 8Rank: 8

    精華
    29
    威望
    1165984
    K幣
    44347 元
    注冊時間
    2010-11-25

    大區版主考研論壇2013年下半年優秀版主

    9
    發表于 2013-5-15 17:12 | 只看該作者
    這樣的過程是有限的,不會一直循環下去。

    在這樣的過程結束之后,每個女生都會hold住一個男生。即在那一天之后沒有男生可以繼續表白了,這時女生們終于都向那個男生說了yes!  



    按照這樣的過程,最后不會存在一對男女有私奔傾向  

    即完成了stable matching。  

    回復

    使用道具 舉報

    134

    主題

    2萬

    帖子

    0

    積分

    大區版主

    咩咩咩。。。很萌有木有。。。

    Rank: 8Rank: 8

    精華
    29
    威望
    1165984
    K幣
    44347 元
    注冊時間
    2010-11-25

    大區版主考研論壇2013年下半年優秀版主

    10
    發表于 2013-5-15 17:12 | 只看該作者
    師兄。。。我說的對么?男女穩定匹配。。。。
    回復

    使用道具 舉報

    您需要登錄后才可以回帖 登錄 | 注冊 人人連接登陸

    本版積分規則   

    關閉

    您還剩5次免費下載資料的機會哦~

    掃描二維碼下載資料

    使用手機端考研幫,進入掃一掃
    在“我”中打開掃一掃,
    掃描二維碼下載資料

    關于我們|商務合作|小黑屋|手機版|聯系我們|服務條款|隱私保護|幫學堂| 網站地圖|院校地圖|漏洞提交|考研幫

    GMT+8, 2026-4-30 12:49 , Processed in 0.106255 second(s), Total 11, Slave 9(Usage:7.25M, Links:[2]1,1_1) queries , Redis On.

    Powered by Discuz!

    © 2001-2017 考研 Inc.

    快速回復 返回頂部 返回列表
    × 關閉