从数字范围中分配数字

时间:2018-03-21 04:05:33

标签: excel excel-vba vba

我需要从给定的数字范围中随机分配数字。 例如 - (1,1,1,2,3,3,4,5,5,5)需要使用vba代码在一个范围内分布。 每个号码至少应分发一次。

1 个答案:

答案 0 :(得分:0)

如果Peh在钱,那么试试这个:

var numbers = new[] { 1, 1, 1, 2, 3, 3, 4, 5, 5, 5 };
var take = 7;

var lookup = numbers.ToLookup(x => x);
var random = new Random();
var result =
    lookup
        .SelectMany(x => x.Take(1))
        .Concat(lookup.SelectMany(x => x.Skip(1)).OrderBy(x => random.Next()))
        .Take(take)
        .OrderBy(x => random.Next())
        .ToArray();