我正在尝试在OCaml中构建一个仅包含1和0的矩阵。我当前的代码是
let myArray = Array.make_matrix num num2 (Random.int 2) in
print myArray
然而,只用0或只有1填充整个阵列,而不是组合,我有办法做我想做的事吗?
答案 0 :(得分:3)
是的,Array.make_matrix
使用您提供的单个值填充矩阵。
你可以这样写:
let myArray =
Array.init num
(fun _ -> Array.init num2 (fun _ -> Random.int 2))
以下是它的外观:
# let num = 2;;
val num : int = 2
# let num2 = 3;;
val num2 : int = 3
# let myArray =
Array.init num
(fun _ -> Array.init num2 (fun _ -> Random.int 2));;
val myArray : int array array = [|[|0; 1; 0|]; [|1; 1; 0|]|]
#
<强>更新强>
如果每次都需要不同的数字,则需要每次使用不同的种子初始化随机数生成器。一个简单的方法是:
Random.self_init ()
你可以在程序启动时调用一次,并且在程序的每次运行中都会得到不同的随机数。