我有一些与它们相关的权重的任务:
Task1:4
Task2:10
Task3:15
Task4:1
Task5:8
Task6:3
Task7:25
Task8:12
Task9:4
Task10:12
Task11:12
Task12:10
Task13:12
Task14:20
Task15:12
Task16:12
权重之和不一定等于100.在上述情况下,其为172。
我正在使用this answer
中的RandomCollection
课程
我刚刚为RandomCollection
添加了以下方法来获取生成的地图:
public NavigableMap<Double, E> getMap() {
return map;
}
这是我的测试类:
package com.mypackage;
import java.util.Map;
public class App {
public static void main(String[] args){
RandomCollection<String> randomCollection = new RandomCollection<String>();
randomCollection.add(4 * 1.0/172, "Task1");
randomCollection.add(10 * 1.0/172, "Task2");
randomCollection.add(15 * 1.0/172, "Task3");
randomCollection.add(1 * 1.0/172, "Task4");
randomCollection.add(8 * 1.0/172, "Task5");
randomCollection.add(3 * 1.0/172, "Task6");
randomCollection.add(25 * 1.0/172, "Task7");
randomCollection.add(12 * 1.0/172, "Task8");
randomCollection.add(4 * 1.0/172, "Task9");
randomCollection.add(12 * 1.0/172, "Task10");
randomCollection.add(12 * 1.0/172, "Task11");
randomCollection.add(10 * 1.0/172, "Task12");
randomCollection.add(12 * 1.0/172, "Task13");
randomCollection.add(20 * 1.0/172, "Task14");
randomCollection.add(12 * 1.0/172, "Task15");
randomCollection.add(12 * 1.0/172, "Task16");
for (Map.Entry<Double, String> entry : randomCollection.getMap().entrySet()){
System.out.println(entry.getValue() + " : " + entry.getKey());
}
}
}
我乘以1.0得到一个加倍并除以172来归一化。
以上程序的输出是:
Task1 : 0.023255813953488372
Task2 : 0.08139534883720931
Task3 : 0.16860465116279072
Task4 : 0.17441860465116282
Task5 : 0.22093023255813957
Task6 : 0.23837209302325585
Task7 : 0.38372093023255816
Task8 : 0.4534883720930233
Task9 : 0.47674418604651164
Task10 : 0.5465116279069767
Task11 : 0.6162790697674418
Task12 : 0.6744186046511628
Task13 : 0.7441860465116279
Task14 : 0.8604651162790697
Task15 : 0.9302325581395349
Task16 : 1.0
这是对的吗?
我希望RandomCollection.next()
在Task1
和Task16
之间向我返回一个任务;但根据其重要性或相关权重。即如果我拨打RandomCollection.next()
172次,则应返回4次Task1
,应返回10次Task2
,依此类推。
答案 0 :(得分:0)
权重已经标准化,因此您可以自然地添加它们。
# Create data for the graph.
x <- c(21, 62, 10, 53)
labels <- c("London", "New York", "Singapore", "Mumbai")
# Give the chart file a name.
png(file = "city_title_colours.jpg")
# Plot the chart with title and rainbow color pallet.
pie(x, labels, main = "City pie chart", col = rainbow(length(x)))
# Save the file.
dev.off()
累积概率看起来是正确的。