您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么在java項目中實現一個海盜算法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
具體方法如下:
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]); } } }
看完上述內容,你們對怎么在java項目中實現一個海盜算法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。