24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 728  |  回复: 1

香果果洋洋

新虫 (初入文坛)

[求助] 排列组合已有1人参与

一个长度为n的向量,向量的元素由0,1排列而成。现知道其中有k个元素为1(n>=k),另外也知道这些1之间的位置信息:位置差1的有k1个,位置差2的有k2个……位置信息举例说明:假设有一个长度为10的上述0,1向量,已知在向量的第2、6、9位置上为1,其余为0。这些1之间的位置信息是指:位置差3的有一个,位置差4的有一个,位置差7的有一个。
能否有一种算法能找到一种满足这种排列要求的0,1向量。

发自小木虫Android客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hank612

至尊木虫 (著名写手)

【答案】应助回帖

如果楼主手头有可以多项式因式分解 的数学软件, 问题会变得相对简单。

假设这k个球位置在a1,a2,...,ak处, 那么乘积恰好包括了所有的相对距离 的信息(含重数), 因此,楼主把手头上数据数列转换成 x的幂次,再加上数据数列每项取负号后的幂次,再加上k(由k个点到自身的距离为0而产生), 然后做因式分解,把因式重新组合成两个相等次数的多项式, 立刻得到想要的位置序列。

譬如, 假如k=4, 距离序列是(1,3,4,5,7,8), 那么要做因式分解的多项式是,
见下图。于是因子乘积 告诉我们四个位置为(0,3,7,8).  楼主还可以试试另外一个8次的因子, 得到位置(0,1,5,8). 而实际上,这两组位置在数轴上关于点x=4是中心对称的,它们应该算是同一组解。
排列组合
Factor.png

We_must_know. We_will_know.
2楼2016-05-29 22:16:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 香果果洋洋 的主题更新
信息提示
请填处理意见