программа, которую я пишу, требует, чтобы я моделировал мутацию генов. Если определенный экземпляр (J) гена выбран для мутации, он должен случайным образом стать одним из предопределенного подмножества альтернативных генов. Эти дискретные гены отмечены целыми числами в диапазоне от 0 до K-1, где K равно общему количеству аллелей.
В общем, мне нужна помощь в написании кода для случайного выбора целого числа в диапазоне от 0 до K-1, которое не равно J. Любая помощь очень ценится!
ДРУГОЕ РЕДАКТИРОВАТЬ: Спасибо за всю помощь до сих пор, я придумал следующее, которое игнорирует требование, что я не могу равняться J. Однако еще одна проблема, с которой я столкнулся, заключается в том, что процесс должен повторяться несколько раз, и из-за того, что одно и то же семя используется каждый раз, когда значение i всегда одинаково. Как я должен обеспечить, чтобы начальное значение не оставалось одинаковым в каждом поколении? Опять же, любая помощь приветствуется!
program randtest
implicit none
real*4 :: u(5)
integer :: i(5)
integer :: k = 4
integer, dimension (1) :: seed = (/2817/)
call random_seed(put=seed)
call random_number(u)
i = floor((k+1)*u)
print *, i
end program randtest