求一fortran程序,取出n个连续自然数的所有n级排列.例如 n=4的:要存到文件里面的是所有1234的排列:1234,1243,1324,1342,····4321 这样共n!=24个排列的数据.要求n可以取任意正整数.

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/26 15:01:08
求一fortran程序,取出n个连续自然数的所有n级排列.例如n=4的:要存到文件里面的是所有1234的排列:1234,1243,1324,1342,····4321这样共n!=24个排列的数据.要求

求一fortran程序,取出n个连续自然数的所有n级排列.例如 n=4的:要存到文件里面的是所有1234的排列:1234,1243,1324,1342,····4321 这样共n!=24个排列的数据.要求n可以取任意正整数.
求一fortran程序,取出n个连续自然数的所有n级排列.
例如 n=4的:要存到文件里面的是所有1234的排列:1234,1243,1324,1342,····4321 这样共n!=24个排列的数据.
要求n可以取任意正整数.

求一fortran程序,取出n个连续自然数的所有n级排列.例如 n=4的:要存到文件里面的是所有1234的排列:1234,1243,1324,1342,····4321 这样共n!=24个排列的数据.要求n可以取任意正整数.
program main
character(20) arr(20000),str
Integer n,ss(20),k,m
n = 4
k = 0
m = JC(n)
Do While (k < m)
str = ""
Call GetNum(str, n) !获得随机数
!判断随机数是否已经出现过
 ii = 1
do i = 1 , k
If (trim(arr(i))==trim(str)) Then
ii = 0
cycle
End If
enddo
!如果随机数未出现过则储存在arr中
If (ii == 1) Then
k = k + 1
arr(k) = str
!输出结果 也可输出到文件中
write(*,*) trim(str)
End If
end do
End program
Subroutine GetNum(str, n)
!获得一个n位随机数,该随机数内各位数字都不重复
character(20) str
 character(1) s1
Integer ss(20),n,a,b
 real x
str = ""
ss=0
i = 0
Do While (Len(trim(str)) < n)
 call random(x)
a = Int(x * n + 1)
b = 1
do j = 1, i
If (a == ss(j)) Then
b = 0
cycle
End If
end do
If (b == 1) Then
i = i + 1
ss(i) = a
write(s1,'(i1)') a
str = trim(str) // s1
End If
end do
End Subroutine
integer Function JC(n)
!计算n的阶乘
integer n
JC = 1
do i = 1 , n
JC = JC * i
end do
End Function
我的源代码是vba的,结果可以直接输出在excel中,花了好久改成fortran.vba的也一起给你吧:
Private Sub nj()
Dim arr(10000) As String, n As Integer, str As String, ss(10) As Integer
Sheet1.Cells.Clear
n = 5
k = 0
m = JC(n)
Do While k < m
str = ""
Call GetNum(str, n)
ii = 1
For i = 1 To k
If arr(i) = str Then
ii = 0
Exit For
End If
Next
If ii = 1 Then
k = k + 1
arr(k) = str
Cells(k, 1) = str
End If
DoEvents
Loop
MsgBox ""
End Sub
Private Sub GetNum(str, n)
Dim ss() As Integer
str = ""
ReDim ss(n)
i = 0
Do While Len(str) < n
a = Int(Rnd * n + 1)
b = 1
For j = 1 To i
If a = ss(j) Then
b = 0
Exit For
End If
Next
If b = 1 Then
i = i + 1
ss(i) = a
str = str & ss(i)
'MsgBox ss(i) & "," & str
End If
DoEvents
Loop
End Sub
Private Function JC(n)
JC = 1
For i = 1 To n
JC = JC * i
Next
End Function

求一fortran程序,取出n个连续自然数的所有n级排列.例如 n=4的:要存到文件里面的是所有1234的排列:1234,1243,1324,1342,····4321 这样共n!=24个排列的数据.要求n可以取任意正整数. 怎样求最长连续降水日数用fortran程序编写, 求相关系数fortran程序~求相关系数的fortran程序~. fortran程序求矩阵特征值, 恳求fortran大神帮忙编译一小段简单程序输入n个点(x1,y1).(xn,yn),求输出a和b., 其中即x1.xn的平均值,公式中其他横杠均表示平均值的意思.有人能帮帮忙么, Fortran程序中,如何对一列数据每3000个为一组求平均? 从自然数列中选取出2009个连续自然数,使这2009个连续自然数之和为一个完全平方数 求:牛顿迭代法解方程的程序要Fortran的 本人为fortran初学者,跪求fortran上矩阵相乘.矩阵求逆的程序,要自己遍的那种. 求fortran大神帮我编一个Fortran程序计算无理数π的1-100的小数位, C语言程序:从N个数中随机取出100个不同的数 求一fortran或C语言程序,求6个元素的所有6个元素的组合.如ABCDEF,组合成6个元素的组合:AABBBB、AABBCC、ABCCDD.组合出来的每个字符组都是六个元素,但里面可以有1~6种不同的元素. 编写程序 使用如下公式求自然常数E的近似值 知道累加项1/N! 使用fortran,编写程序将200个整数按照从小到大的顺序排列 程序小白求助,Fortran程序中,如何对一列数据每12个为一组求平均?要求直接通过文本读取数据,最后的结果也要放在一个文本里, 11.11 55.55 是两个连续奇数的奇n为自然熟.11.11 55.55是两个连续奇数的奇(n的1)(n个5) matlab中一向量,如[1 6 3 8 4 6 2 8 4 3 6...],我要每3个、4个或5个数取出一个数,形成一向量,求程序 matlab已知一串序列,依次取连续的3个.求程序