但是我感觉你这个写法不够随机。
时间: 2023-08-08 22:05:34 浏览: 88
如果你想要更随机的数据,你可以使用Fortran的随机数生成函数来替代固定的坐标计算。下面是使用Fortran的随机数生成函数生成三维离散高斯分布数据的示例代码:
```fortran
program generate_gaussian_data
implicit none
integer, parameter :: nx = 10 ! x轴方向网格数
integer, parameter :: ny = 10 ! y轴方向网格数
integer, parameter :: nz = 10 ! z轴方向网格数
real, parameter :: mean = 0.0 ! 高斯分布的均值
real, parameter :: stddev = 1.0 ! 高斯分布的标准差
real :: data(nx, ny, nz) ! 存储生成的三维离散高斯分布数据
integer :: i, j, k
real :: x, y, z
! 初始化随机数种子
call random_seed()
! 生成三维离散高斯分布数据
do i = 1, nx
do j = 1, ny
do k = 1, nz
call random_number(x)
call random_number(y)
call random_number(z)
x = (x - 0.5) * nx
y = (y - 0.5) * ny
z = (z - 0.5) * nz
data(i, j, k) = exp(-(x*x + y*y + z*z) / (2.0 * stddev**2)) / (sqrt(2.0 * pi) * stddev)
end do
end do
end do
! 输出生成的数据
do i = 1, nx
do j = 1, ny
do k = 1, nz
write(*, '(3F8.4)') data(i, j, k)
end do
end do
end do
end program generate_gaussian_data
```
在这个示例代码中,我们使用Fortran的`random_number`函数生成随机数,并将其映射到指定的范围上。通过这种方式,我们可以获得更随机的坐标值来计算高斯分布。你可以根据需要调整程序中的参数和输出方式。
阅读全文