我想用元素距离约束对组合进行排序和取消排序。选定的元素不能重复。
例如:
n:=10
元素从中选择
k:=5
正在选择的元素
d:=3
2个选择元素之间的最大距离
1,3,5,8,9
与约束匹配
1,5,6,7,8
与约束不匹配
在给定距离约束下,1,2,3,4,5
小于1,2,3,4,6
,如何对组合进行排序?有没有一种方法可以在不计算较小秩的组合的情况下进行排序?
您可以通过首先创建并填充二维数组来实现这一点,我将其称为“有效尾数”的NVT,以记录从给定值的特定位置开始的有效“尾数”。例如,NVT[4][6]
完成后,您可以计算组合C的秩,如下所示:
相反,你可以找到具有给定秩r的组合C,如下所示:
复杂性分析:
实施说明:以上细节有点繁琐;如果你没有具体的数据可以查看,那么很容易一个错误就搞定了,或者混淆了两个变量,或者诸如此类的事情。由于您的示例只有168个有效组合,我建议您生成所有组合,以便在调试期间可以引用它们。
可能的额外优化:如果您希望n相当大,并且希望对“rank”和“unrank”组合进行大量查询,那么您可能会发现创建第二个数组很有用,我将其称为NVTLT,表示“有效尾数小于”,记录从某个位置开始且值小于给定值的有效“尾数”。例如,NVTLT[3][5]
对于正整数n和k,设“n的k-fibonacci位序列”为k的位序列,其中索引上的描述不但是。这些正整数加起来等于n,并让给定的k-fibonnaci位序列n的“秩”作为其在所有这些fibonacci位序列的排序列表中的位置,以字典顺序从0开始。 例如,对于数字39,我们有以下有效的k-斐波那契-比特序列,k 34 21 13 8 5 3 2 1代码 k=2秩=0 k=3秩=0 k=3秩=1 k=
对于正整数n和k,让“n的k-分区”是k个加起来等于n的不同正整数的有序列表,让给定n的k-分区的“秩”是它在所有这些列表的有序列表中的位置,从0开始。 例如,有两个5(n)的2分区 所以,我想做两件事: 给定n,k和n的k-划分,我想求n的k-划分的秩。 给定n,k和一个秩,我想找到n的k-划分 我能做到这一点,而不必计算n的所有k-划分,在感兴趣的k-划分之前吗? 这个问题与其他问题不同,因为
我在WooCommerce开发一个网店(v 2.4.6)。在本地机器上,WooCoommerce使用密钥和订单标识创建订单。 当我把代码放在实时环境中时,WooCommerce不会创建订单密钥并给出错误 在错误的地方有这样的代码: 函数“wc_get_order($order_id)”在创建订单后获取订单,并返回订单对象。 所以我猜WooCommerce不会在结帐过程后创建订单。有没有人经历过这个
刚面完一场离谱的面试后,下午5.30面的秩鼎; 大致流程是,上来还是发了个数据列表,不过这次正常点,发的是一个列表;要求自己把列表数据存起来,自己查出来。 刚开始没理解清除意思,我直接写了个二分查找;之后实现这个需求,要求输入序号或者名称都可查询到,还好最后实现了。 没问题之后: 1.自我介绍 2.JS事件循环机制的理解 3.JS闭包的理解及用途 4.看了下之前做的项目 5.能实习多久?学校里的课
我试图建立一个CNN RNN模型,我得到以下错误。任何帮助都将不胜感激。 FC2具有形状(?,4096) 文件“rcnn.py”,第182行,在模型输出中。nn。动态文件(stack[fc2],dtype=tf.float32) 文件/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/rnn.py”,第574行,在动态文件dty
主要内容:在创建表时设置非空约束,在修改表时添加非空约束,删除非空约束MySQL非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。 比如,在用户信息表中,如果不添加用户名,那么这条用户信息就是无效的,这时就可以为用户名字段设置非空约