首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(n选择k)与长度n为k位的位串之间的双射

(n选择k)与长度n为k位的位串之间的双射
EN

Stack Overflow用户
提问于 2019-01-28 15:45:29
回答 1查看 163关注 0票数 3

虽然我知道如何生成大小为1的所有(n bijection k)位串,但是我很难找到一个双射,它得到1和(n Selectk)之间的数字i,并以任意顺序输出这种i-th向量。

显然,可以简单地枚举列表中的所有向量,然后输出列表的i-th条目,但不幸的是,对于我的设置,这种方法需要很高的内存需求。

编辑:它也应该是一个有效的计算,计算每个双射调用的所有向量的列表也不是一个选项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-28 15:55:28

直截了当的方法:

如果i < (n-1 )选择k),则最左边的位是,i递归地确定其余的位。否则,最左边的位是1i - (n-1选择k)递归地确定其余的位。在第二种情况下,最多有(n-1选择k-1)可能值i - (n-1选择k)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54405555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档