Выберите N случайных элементов из List<T> в C#

Перебрать и для каждого элемента random-sample сделать вероятность выбора random = (нужное число)/(оставшееся collections число)

Таким образом, если random-sample бы у вас было 40 предметов, у random первого был бы шанс быть java-collections-api выбранным 5/40. Если это c# так, то следующий имеет шанс c-sharp 4/39, в противном случае c# он имеет шанс 5/39. К тому algorithm-design времени, когда вы дойдете collection до конца, у вас будет 5 предметов, и csharp часто у вас будут все они c#.net до этого.

Эта техника называется algorithms selection sampling, частный случай Reservoir Sampling. По производительности random это похоже на перетасовку algorithm-design ввода, но, конечно, позволяет algorithms генерировать выборку без element изменения исходных данных.

c#

algorithm

collections

random

element

2022-11-21T20:08:42+00:00