F# 如何使数组洗牌函数在后续调用中产生不同的结果
我有以下功能,可以按我希望的方式进行单个调用:F# 如何使数组洗牌函数在后续调用中产生不同的结果,f#,F#,我有以下功能,可以按我希望的方式进行单个调用: let shuffle (arr : 'a array) = let array = Array.copy arr let rng = new Random() let n = array.Length for x in 1..n do let i = n-x let j = rng.Next(i+1) let tmp = array.[i] array
let shuffle (arr : 'a array) =
let array = Array.copy arr
let rng = new Random()
let n = array.Length
for x in 1..n do
let i = n-x
let j = rng.Next(i+1)
let tmp = array.[i]
array.[i] <- array.[j]
array.[j] <- tmp
array
您希望将随机变量移动到函数外部,如下所示:
let rng = new Random()
let shuffle (arr : 'a array) =
let array = Array.copy arr
let n = array.Length
for x in 1..n do
let i = n-x
let j = rng.Next(i+1)
let tmp = array.[i]
array.[i] <- array.[j]
array.[j] <- tmp
array
let rng=new Random()
让我们洗牌(arr:'一个数组)=
让array=array.copy arr
设n=array.Length
对于1..n中的x
设i=n-x
设j=rng.Next(i+1)
设tmp=array[i]
数组。[对不起,我应该删除它吗?不值得删除,这可能有一天会对谷歌上的人有所帮助。
let rng = new Random()
let shuffle (arr : 'a array) =
let array = Array.copy arr
let n = array.Length
for x in 1..n do
let i = n-x
let j = rng.Next(i+1)
let tmp = array.[i]
array.[i] <- array.[j]
array.[j] <- tmp
array