问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB全排列算法。

发布网友 发布时间:2022-07-26 23:20

我来回答

4个回答

热心网友 时间:2023-10-23 07:59

新建一个工程,在窗体上新建一个text1,一个command1,把以下代码复制到工程中运行试试

Option Explicit

Private List() As String

Public index&, tmp$

Private Sub Command1_Click()

    ReDim List(Len(Trim(Form1.Text1.Text)))

    For index = 1 To Len(Trim(Form1.Text1.Text))

        List(index) = Mid(Form1.Text1.Text, index, 1)

    Next index

    Perm List, 1, Len(Trim(Form1.Text1.Text))

End Sub

Private Sub Form_Load()

    Form1.AutoRedraw = True

End Sub

Public Function Swap(ByRef Num1 As String, ByRef Num2 As String) '交换两个数

    tmp = Num1

    Num1 = Num2

    Num2 = tmp

End Function

Public Function Perm(ByRef ListTar() As String, ByVal k As Long, ByVal m As Long)  '全排列函数

    Dim i&

    If k > m Then

        For i = 1 To m

            Print ListTar(i);

        Next i

        Print

    Else

        For i = k To m

            Swap ListTar(k), ListTar(i)

            Perm ListTar, k + 1, m

            Swap ListTar(k), ListTar(i)

        Next i

    End If

End Function

运行效果

参考资料:邓向阳,万婷婷.算法分析与设计.冶金工业出版社.2005

热心网友 时间:2023-10-23 07:59

'添加一个按钮,将下列代码复制到代码窗口
Private Sub Command1_Click()
Open "c:\9阶乘种.txt" For Output As #1
Close #1
For i1 = 1 To 9
For i2 = 1 To 9
If i2 = i1 Then GoTo G2
For i3 = 1 To 9
If i3 = i1 Or i3 = i2 Then GoTo G3
For i4 = 1 To 9
If i4 = i1 Or i4 = i2 Or i4 = i3 Then GoTo G4
For i5 = 1 To 9
If i5 = i1 Or i5 = i2 Or i5 = i3 Or i5 = i4 Then GoTo G5
For i6 = 1 To 9
If i6 = i1 Or i6 = i2 Or i6 = i3 Or i6 = i4 Or i6 = i5 Then GoTo G6
For i7 = 1 To 9
If i7 = i1 Or i7 = i2 Or i7 = i3 Or i7 = i4 Or i7 = i5 Or i7 = i6 Then GoTo G7
For i8 = 1 To 9
If i8 = i1 Or i8 = i2 Or i8 = i3 Or i8 = i4 Or i8 = i5 Or i8 = i6 Or i8 = i7 Then GoTo G8
For i9 = 1 To 9
If i9 = i1 Or i9 = i2 Or i9 = i3 Or i9 = i4 Or i9 = i5 Or i9 = i6 Or i9 = i7 Or i9 = i8 Then GoTo G9
DoEvents
Open "c:\9阶乘种.txt" For Append As #1
k = i1 & i2 & i3 & i4 & i5 & i6 & i7 & i8 & i9
Print #1, k
Label1 = k
Close #1
G9:
Next i9
G8:
Next i8
G7:
Next i7
G6:
Next i6
G5:
Next i5
G4:
Next i4
G3:
Next i3
G2:
Next i2
G1:
Next i1
MsgBox "完成排列,请擦看!"
Shell "notepad.exe c:\9阶乘种.txt ", 1
End Sub

热心网友 时间:2023-10-23 08:00

曾做过一道题,看算法。

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
enum color{one,two,three,four};
color pri;
int i,j,k,n=0,loop;
for (i=one;i<=four;i++)
for(j=one;j<=four;j++)
if(i!=j)
{ for (k=one;k<=black;k++)
if((k!=i)&&(k!=j))
{n=n+1;
cout<<setw(3)<<n;
for(loop=1;loop<=3;loop++)
{switch(loop)
{case 1:pri=color(i);break;
case 2:pri=color(j);break;
case 3:pri=color(k);break;
default:break;
}
switch(pri)
{case one:cout<<setw(8)<<"one";break;
case two:cout<<setw(8)<<"two";break;
case three:cout<<setw(8)<<"three";break;
case four:cout<<setw(8)<<"four";break;
default:break;
}
}
cout<<endl;
}
}
cout<<"total:"<<n<<endl;
return 0;
}

热心网友 时间:2023-10-23 08:00

那个,怎样才算好?
private sub form_click()
dim level as long
dim num() as long
dim i as long
level=9
redim num(1 to level)
for i=1 to level
num(i)=i
next i
call printnum(num(),level,level)
end sub

private sub printnum(num() as long,level as long,total as long)
dim i as long,temp as long
if level=1 then
for i=1 to total
print num(i);
next i
print
else
call printnum(num(),level-1,total)
for i=1 to level-1
temp=num(level)
num(level)=num(level-1)
num(level-1)=temp
call printnum(num(),level-1,total)
next i
end if
end sub
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
诺基亚5233直签工具 我的5233下了证书、也在塞班官网上在线签名了、怎么还是提示证实书错误... 你好 就是我用的诺基亚5233直签工具就是用不了什么受证书限制内部错误... 请问哪里有做餐用包装纸巾的.厂 怎么在餐巾纸上或者纸巾包装上打广告? 广告餐巾纸广告餐巾纸的分类 广告餐巾纸广告餐巾纸的制作形式 ...支付密码一样呢?支付密码和银行卡的关系是什么?求解答, ...今天是怎么了,换了数据线也不行,同事的M1也一样不能充电... 小米M1和小米青春版就是CPU和内存不一样,我是学生,买哪一个比较好? matlab 运行程序后显示Undefined function or variable &#39;i1&#39;. 王俊凯模仿腾格尔唱《丑八怪》,你觉得他模仿到了精髓了吗? 你毁我天堂,我毁你乐坛,腾格尔居然对郭富城下手了? 腾格尔唱的丑八怪好听吗? 防止煤烟中毒的风斗图片 我刚买了WD的My book essential 1.5TB USB2.0的,我插上电源,也接上USB了,怎么什么也没出现啊~~ QQ能不能不登陆删除好友 为什么wifi信号突然变成灰色了还可以上网怎么可以重新变蓝 wifi信道颜色怎么设置? 软炸虾仁的软炸糊比例是多少 软炸虾仁的面糊怎样调 软炸虾仁的面糊调法介绍 我用的是诺基亚6708可是 我不知道 怎么升级我想问哈贵州六盘水有那可以升级的地方 六盘水南环路协和医院附近的联想维修服务站在哪儿 六盘水联想售后服务中心在那呀 六盘水市美图手机维修点在什么地方 落花生,课文围绕花生讲了哪些内容 华硕S550C触平板win8笔记本,在可以在保留原机械硬盘的基础上加装固态硬盘吗,请大神们赐教啦,谢谢!! 什么是交换机生成树? 我长期雇佣一人替我打扫卫生,我需要对他承担那些法律责任 Z95列车到湖北地区是几点 从1到33的数中任选六位数的排列。用vb编程 最低配置: CPU: Intel Core i3 or i5 dual core processo fortran程序如何列出一组数据所有的排列可能。比如:1,5,8,9,11如何列出他们所有排列的可能 error C2679: binary &#39;&gt;&gt;&#39; : no operator defined which takes a right-hand operand of type &#39;&#39; (or ther 少年派走玻璃桥是第几集? 少年派里玻璃栈道哪一集 少年派元旦晚会是哪一集 上海奉贤区现在哪里可以摆地摊卖菜 为什么我和一个女生聊天她很少打字? 一个女生跟你聊天很少打字,是因为什么? 公婆饼怎么和面有筋到 vivoX20信号栏可不可以修改 怎么修改vivoX20信号栏 汾湖度假区的观音拜佛 用水和酒精粉勾兑白酒55度比例是多少 医用酒精粉,用水勾兑成白酒那种粉末 汾湖度假区的文化底蕴 大家好!我准备做白酒生意;自己买酒精粉和香精勾兑。请问在什么样的标准上是不违法的,对人体的身体无... 汾湖度假区的历史变迁 汾湖度假区的百舸争流 汾湖度假区的船闸风光