回 帖 发 新 帖 刷新版面

主题:如何对一组数两两随机配对?

有一组数1,2,3。。。。。100。请问如何对这组数进行随机两两配对相加?

回复列表 (共4个回复)

沙发

两两配对  的  含义 是什么?

板凳

对数组下标随机抽取呗。

3 楼


 program main
 implicit none
 integer:: i,j,n,max
 parameter (max=100)
 integer,dimension(max)::a,b
 real:: x

 do i=1,max
  a(i) = i
 enddo

 call random_seed () 
 call random_number (x)

 n=1
 b(n)=nint((max-1)*x+1)
 do while(n<max) 
  call random_number (x)
  do j=1,n
   if (nint((max-1)*x+1)==b(j)) then
    exit
   else if (j==n) then
    n=n+1
    b(n)=nint((max-1)*x+1)
    if(mod(n,2)==0) write(*,*) n/2,'-->',a(b(n)),'+',a(b(n-1)),'=',a(b(n))+a(b(n-1))
   endif
  enddo
 enddo

 end program


试试这段程序,是不是满足你的要求?

4 楼


谢谢。

我来回复

您尚未登录,请登录后再回复。点此登录或注册