Про обнуление и правда не подумал, но оно именно что падает в экспшен, а не просто неверно считает. Есть какая-то особенноть у явы - нельзя в компараторах использовать значения вычисляемые во время выполнения. Я с этим и раньше когда-то сталкивался, только забыл уже все на свете.
Алсо может ты знаешь, как быстро и легко отшафлить List так, чтобы два объекта с одинаковыми атрибутами гарантированно оказались на расстоянии не меньше чем N?
Я думал сделать свой шафл, чтобы весь этот СиАОД спрятать куда подальше. Но мне не хочется создавать дополнительный List при этом - это как-то не по дзен совсем.
Кстати, а как устроен родной шафл? Подозреваю, что там просто компаратор, который выдает рандомом +1, 0, -1.
Смотрел минут 10. Вглядывался, но так и не понял что тут неправильно :)
Единственное что ввело в заблуждение в первом варианте это пересчёт среднего на каждом шаге сортировки. Собственно если кто то параллельно добавить в sessions новое значение то сортировка будет неверной.
Исходя из этого второй вариант это собственно оно. Среднее перевычисляется после каждой игры. После этого происходит результирующая сортировка игроков.
Comments 5
Reply
Алсо может ты знаешь, как быстро и легко отшафлить List так, чтобы два объекта с одинаковыми атрибутами гарантированно оказались на расстоянии не меньше чем N?
Reply
2 Collections.shuffle(List list)
3 Вставляешь повторяющиеся объекты на нужном тебе расстоянии
Reply
Кстати, а как устроен родной шафл? Подозреваю, что там просто компаратор, который выдает рандомом +1, 0, -1.
Reply
Единственное что ввело в заблуждение в первом варианте это пересчёт среднего на каждом шаге сортировки. Собственно если кто то параллельно добавить в sessions новое значение то сортировка будет неверной.
Исходя из этого второй вариант это собственно оно. Среднее перевычисляется после каждой игры. После этого происходит результирующая сортировка игроков.
Reply
Leave a comment