您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)怎么在java項目中實現(xiàn)一個海盜算法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
具體方法如下:
package unit4; public class Pirate{ private String name; private int[] schemes; private int index; public Pirate(int t,int i) { name="unknow"; index=i; schemes=makeSchemes(t); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex(){return index;} public int[] getSchemes() {return schemes;} public int handvote(int table[]) { return myhandvote(table,index); } private int myhandvote(int []t,int i) { if(t[i]==0) return 0; if(i==1) return 0; return 1; } public int[] makeSchemes(int t) { int vote=0; schemes =new int[t-index]; do{ for(int i=0;i<schemes.length;i++){ schemes[i]=(i+1)%2; } for(int i=0;i<schemes.length;i++){ vote=vote+myhandvote(schemes,i); } }while(!(2*vote>t/2)); return schemes; } }
package unit4; public class Judger { int[] allot; Pirate[] pirates; public Judger(Pirate []pirates,int[]a) { this.pirates=pirates; allot=a; } public int[] getAllot() { return allot; } public void setAllot(int[] allot) { this.allot = allot; } public Pirate[] getPirates() { return pirates; } public void setPirates(Pirate[] pirates) { this.pirates = pirates; } public boolean evaluate(){ int vote=0; for(int i=0;i<pirates.length;i++){ vote+=pirates[i].handvote(allot); } if(2*vote>=pirates.length) return true; else return false; } }
package unit4; public class MaxInterest { public static void main(String[] args) { int piratecounts=5; Pirate[]pirates=new Pirate[piratecounts]; for(int i=0;i<piratecounts;i++){ pirates[i]=new Pirate(piratecounts,i); pirates[i].setName("name"+i); } int[]table =pirates[0].getSchemes(); Judger ajudge=new Judger(pirates,table); if(ajudge.evaluate()){ int[]scheme=ajudge.getAllot(); for(int i=0;i<scheme.length;i++) System.out.println(" "+scheme[i]); } } }
看完上述內(nèi)容,你們對怎么在java項目中實現(xiàn)一個海盜算法有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。