基本アルゴリズムの説明は次のとおりです。
1.各広告の重みを増やします
2.一致するすべての広告の重みを合計して追加します。
3。乱数として追加の結果を持つ種子は、1〜3の間の乱数RDを生成します
4。その後、すべての広告を通過すると、アクセス順序は自由に順序付けます。上記の条件まで、curwt> = rdが必要です。
特別な説明:
このアルゴリズムの順序は、広告の順序とは何の関係もありません
Import java.util.util.comparators;抑制( "Uncheck")public static void(string [] args){node> arrnodes <node>(10、 "test 1"); =新しいノード(「テスト2」); )。 for(int k = 0; k <20; k ++){showmap = new linkedhashmap <string、integer>(); ; kw = getkw(arrnodes、showmap.containskey(kw.kw)){kw.kw、showmap.get(kw.kw) + 1); kw、1);} //system.out.println(i + "" + random + "" + getkw(arrnodes、random));} system.out.print(k + "" "" ");;: }}} public static node getkw(list <node> nodes、int rd){n:n:n:n:n:n:n:null; n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n:n: n:n:n:n:n:n:n:n:n:n:n:n:n:n:c urwt += n .weight; ){ret = n;} public static intum(list <node> nodes){sum = 0;} public static int getRandom( (int)math.round(math.random() * Seed);} class node int weight = 0; = WT; (kw); return sbbuilder.tostring();} public int(object o2)de n1 =(node)o1; ;それ以外の場合は0;}}