- 积分
- 3
- 注册时间
- 2011-1-2
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2012-9-29 15:13:02
|
显示全部楼层
来自 上海
我是编了一段程序,但是效率不是很高,我想看看是否有人能想出更好的办法来,因为我实际用的话,这里的aa数组是一个极为庞大的数Length[aa]可能达到几千上万甚至十万百万的规模,我这里算一个Length[aa]等于1500左右的数组就算了大概20秒,我希望能算的更快
aa = {{1, 3, 2, 4}, {4, 5, 3, 2}, {4, 5, 6, 3}};
B = Table[0, {i, Length[aa]}];
For[i = 1, i <= Length[aa], i++, B[[i]] = Sort[aa[[i]]]];
B1 = Table[0, {i, Length[aa]}];
Do[B1[[i]] = {{B[[i, 1]], B[[i, 2]], B[[i, 3]]}, {B[[i, 1]],
B[[i, 2]], B[[i, 4]]}, {B[[i, 1]], B[[i, 3]],
B[[i, 4]]}, {B[[i, 2]], B[[i, 3]], B[[i, 4]]}}, {i, 1,
Length[aa]}];
c = Flatten[B1, 1];
f = Reap@Do[
If[Length[Position[c, c[[i]]]] == 1, Sow[i]], {i, 1, Length[c]}];
dd = f[[2, 1]];
nub = Ceiling[dd/4];
El = {};
Do[El = Append[El, c[[dd[[i]]]]], {i, 1, Length[dd]}];
nub
El |
|