由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
CS版 - 问一个很初级的编程问题
相关主题
请教一算法问题请教一个搜索问题
征求application请教一个小的证明
为啥叫浮点?计算复数和实数的cpu时间问题
NP请教一个top-k elements的算法问题
问个图的算法怎样遍历一个字母的组合
曾经有个教授对我说,最难的算法问题就是。。。 (转载)请教一个多维遍历问题
怎么用lex处理DFA?请教一个极限题 (转载)
一个问题order statistics请问个C++入门级问题
相关话题的讨论汇总
话题: 3n话题: 子集话题: 个数话题: 元素话题: 排列
进入CS版参与讨论
1 (共1页)
o*d
发帖数: 72
1
打算用matlab写一个小程序,但是没什么经验。
大概就是说,从1到3n这么多数字的集合,有一个从幂集到正实数的函数f
事先把这3n个数3等分组,这个函数是只依赖于该子集里各组成员个数的
比如f(A)=k_1*b_1+k_2*b_2+k_3*b_3, b_i是固定常数(整数即可),
k_i是这个子集A里包含的各组成员个数,从小到大排列
然后具体要做的就是随便固定一个数字g \in{1..,3n}.
遍历所有(3n)!个,分别计算f(A&g)-f(A),
A是该排列里位于g之前的元素子集(不考虑顺序),求和,最后取平均。
之后想做的就是调整n和b_i,能测试个十几组就够了。
不过也有可能要看情况check(4n)甚至(5n)的相应case。
想问的就是:
1.如果n会取到接近10甚至更高,会不会过于耗时?比如要run 30!次甚至更高。
有没有可能简化公式?因为函数本身还是很规律性的。
比如像对于任意两个排列,只要g之前的所有元素是一样的子集A,f(A&g)-f(A)的结果就
一样。
2.对结果精确度要求并不高,用随机模拟是否可行?或者是近似公式?
谢谢谢谢!
d*****u
发帖数: 17243
2
你所说的“把这3n个数3等分组”是什么意思
是分成元素个数相同的三组?那k又是什么意思
你最好把要问的问题简化成更简单的等价数学问题
然后再来想算法

【在 o*d 的大作中提到】
: 打算用matlab写一个小程序,但是没什么经验。
: 大概就是说,从1到3n这么多数字的集合,有一个从幂集到正实数的函数f
: 事先把这3n个数3等分组,这个函数是只依赖于该子集里各组成员个数的
: 比如f(A)=k_1*b_1+k_2*b_2+k_3*b_3, b_i是固定常数(整数即可),
: k_i是这个子集A里包含的各组成员个数,从小到大排列
: 然后具体要做的就是随便固定一个数字g \in{1..,3n}.
: 遍历所有(3n)!个,分别计算f(A&g)-f(A),
: A是该排列里位于g之前的元素子集(不考虑顺序),求和,最后取平均。
: 之后想做的就是调整n和b_i,能测试个十几组就够了。
: 不过也有可能要看情况check(4n)甚至(5n)的相应case。

o*d
发帖数: 72
3
是我没说清
3等分就是你说的意思,比如A组1~n,B组n+1~2n,C组剩下的
然后其实是说事先给定一个从任一子集到正实数的对应
这个对应依赖于这个子集里包含各组成员个数,
比如挑出12个元素的子集,5个A组的,7个B组的,k_1=5,k_2=7之类的
如果是全排列遍历,直接写程序应该很容易,我就怕没法控制时间。
自己也在想有没有从计算本身化简的方法,
还有就是希望能请教一下什么样的编程技巧可以用上提高效率
(比如用移位,矩阵计算之类的)

【在 d*****u 的大作中提到】
: 你所说的“把这3n个数3等分组”是什么意思
: 是分成元素个数相同的三组?那k又是什么意思
: 你最好把要问的问题简化成更简单的等价数学问题
: 然后再来想算法

D***r
发帖数: 7511
4
那对于某一个排列,F(A&g)和F(A)的差别就在于前者的输入里多一个元素g?
那如果知道g是哪一组的,那差值不就始终是b_i中相应的那一个吗?
估计是哪里理解错了

【在 o*d 的大作中提到】
: 是我没说清
: 3等分就是你说的意思,比如A组1~n,B组n+1~2n,C组剩下的
: 然后其实是说事先给定一个从任一子集到正实数的对应
: 这个对应依赖于这个子集里包含各组成员个数,
: 比如挑出12个元素的子集,5个A组的,7个B组的,k_1=5,k_2=7之类的
: 如果是全排列遍历,直接写程序应该很容易,我就怕没法控制时间。
: 自己也在想有没有从计算本身化简的方法,
: 还有就是希望能请教一下什么样的编程技巧可以用上提高效率
: (比如用移位,矩阵计算之类的)

1 (共1页)
进入CS版参与讨论
相关主题
请问个C++入门级问题问个图的算法
讨论一道onsite时候问的问题 (转载)曾经有个教授对我说,最难的算法问题就是。。。 (转载)
计算机专业的要学实分析和复分析吗怎么用lex处理DFA?
请教个简单的几何算法问题 (转载)一个问题order statistics
请教一算法问题请教一个搜索问题
征求application请教一个小的证明
为啥叫浮点?计算复数和实数的cpu时间问题
NP请教一个top-k elements的算法问题
相关话题的讨论汇总
话题: 3n话题: 子集话题: 个数话题: 元素话题: 排列