coffee0848 发表于 2008-8-10 23:02:46

用LabVIEW和CVI分别编写程序

请教各位高手

用LabVIEW和CVI分别编写程序,要求如下:
输入一个自然数N,取值范围1-9,输出1到N数字组成的所有排列组合。
例如:输入1,输出:1
      输入2,输出:12,21
      输入3,输出:123,132,213,231,321,312

谢谢各位了

lgh269 发表于 2008-8-15 13:51:18

这个有意思,想下想下
大家也可以试试

labc 发表于 2008-8-18 11:38:02

我的大致思路是:
1, 输出的数的总数为为N!;
2, 输出的数的每位数字不一样.

因此只需要剔除
1,10的N-1次冥 到10 的N此冥中任何2位数字一样的数就行了;
2, 并且必须包括1,...N
例如N=3, 则从100~999中筛选, 100不满足条件, 因为它有2个0.

Labc

labc 发表于 2008-8-19 02:12:59

看看,算法不好,当N>=7时花费时间很多,或者会因为内存不够而报错.

Labc

[ 本帖最后由 labc 于 2008-8-19 07:13 编辑 ]

dinga 发表于 2008-8-19 09:27:17

LS正解,呵呵~

飞雨天 发表于 2008-8-19 10:36:18

有意思的很,算法研究确实很挑战的。。。。。
我也贴一个,现在还没优化,输入9的时候程序要跑好长时间~~~
8.2版本~

[ 本帖最后由 飞雨天 于 2008-8-19 10:44 编辑 ]
页: [1]
查看完整版本: 用LabVIEW和CVI分别编写程序