【发布时间】:2015-01-31 23:08:07
【问题描述】:
我有一个元组列表,我想要一个函数在这个列表中随机选择两个元组,然后交换这两个元组。
例如,如果我有一个列表为 ((0 , 0), (1 , 0), (1 , 1), (1 , 2) ,(2 , 2), (0 , 2)),然后,随机选择两个元组。如果选择 (0,0) 和 (1,0),则此函数的返回结果将为 ((1 , 0), (0 , 0), (1 , 1), (1 , 2) ,( 2 , 2), (0 , 2))。
我是 SML 的新手,我在其中苦苦挣扎。有一个伪代码,我想它是不正确的,任何人都可以帮助我正确的吗? :
fun permutation(lst:(int*int) list)=
let
val nextInt = Random.randRange (1,List.length(lst))
val r = Random.rand (1,1)
val x1 = nextInt r
val x2 = nextInt r
val temp = sub(lst,r1)
update(lst,r1,sub(lst,r2))
update(lst,r2,temp)
in
lst
end
【问题讨论】: