0

私は数字のリストを評価しようとしています。[297, 720, 840, 903, 1110, 1170] 1 から 10 のスケールで、10 が最低で 1 が最高の数字です。

したがって、list.get(0) は 9/10 または 10/10 になり、list.get(2) は 10 のうち 5 または 6 になります。

Javaでこれを行うにはどうすればよいですか?

4

1 に答える 1

3

私は次のようなものを提案します:note = 10 - 9 * (value - minValue) / (maxValue - minValue)

    List<Integer> list = Arrays.asList(297, 720, 840, 903, 1110, 1170);
    Collections.sort(list);
    Integer min = list.get(0);
    Integer max = list.get(list.size() - 1);
    List<Integer> notes = new ArrayList<Integer>();
    for (Integer i : list) {
        notes.add(10 - (int) 9.0 * (i - min) / (max - min));
    }
    System.out.println(notes);

これにより、次のことが得られます。

[10, 6, 5, 4, 2, 1]
于 2013-04-03T17:06:13.390 に答える