|
lugionline 发表于 2015-12-4 14:03 ![]()
不需要太快,你码这些SQL代码都不止几秒了,略作改进就可以更快
In[1]:= K = 4;
我的机器还是慢一点,但比第一版快几倍
所以不是机器和软件版本问题,而是算法和工具问题
Mathematica 7.0 for Microsoft Windows (32-bit)
Copyright 1988-2008 Wolfram Research, Inc.
In[1]:= K = 4;
In[2]:= R0 = Table[1, {K}];
In[3]:= Timing@Count[Map[
Length[Select[R0.#, # <= 0 &]] &,
Tuples[Select[Tuples[{1, 0, -1}, K], Total[#] > 0 &], K]], 0]
Out[3]= {2.309, 294879}
In[4]:= K = 4;
In[5]:= Timing@Length@Select[
Tuples[Select[Tuples[{1, 0, -1}, K], Total[#] > 0 &], K],
Length@Select[(Table[1, {K}].#), # <= 0 &] == 0 &]
Out[5]= {8.128, 294879} |
|