一尘不染

从长度为n的序列中选择m个等距元素

algorithm

我有n个元素的向量/数组。我想选择m个元素。

选择必须是公平/确定的-每个小节中的选择均应相同。

在m = 10,n = 20的情况下,这很容易:只需占用第二个元素。但是在一般情况下该怎么做?我必须计算LCD吗?


阅读 224

收藏
2020-07-28

共1个答案

一尘不染

这是一个简单的示例:

from math import ceil

def takespread(sequence, num):
    length = float(len(sequence))
    for i in range(num):
        yield sequence[int(ceil(i * length / num))]

math.ceil 之所以使用,是因为如果没有它,所选索引将在每个隐式子节的开始处权重太大,因此将整个列表加权。

2020-07-28