Random 在SML中生成随机数

Random 在SML中生成随机数,random,sml,Random,Sml,如何从特定范围生成随机数,例如[1100]范围内的整数34 我看了,但它没有给我我想要的,至少从我能理解的角度来看。我想你必须在给定的链接中使用随机结构,就像这样 - val nextInt = Random.randRange (1,100); - val r = Random.rand (1,1); - val x1 = nextInt r; - val x2 = nextInt r; 要获得1到100之间的34个整数,可以使用: let val seed = Random.ran

如何从特定范围生成随机数,例如[1100]范围内的整数34


我看了,但它没有给我我想要的,至少从我能理解的角度来看。

我想你必须在给定的链接中使用随机结构,就像这样

- val nextInt = Random.randRange (1,100);
- val r = Random.rand (1,1);
- val x1 = nextInt r;
- val x2 = nextInt r;

要获得1到100之间的34个整数,可以使用:

let
    val seed = Random.rand (123,456)
in
    List.tabulate(34, fn i => Random.randRange (1,100)  seed)
end;

请注意,值
seed
是一个引用,每次调用
Random.randRange

都会更新该值。如果您的操作正确,请查看结构
Random
中的函数
randRange
,它应该非常适合您的操作need@waldrumpus嗯,好吧,但我不懂怎么写论点。它应该类似于
Random.randRange((i,j)s)
,(或者我完全错了)但是
s
是什么呢?使用函数
Rand.Rand:(int*int)->Rand
来实例化一个随机数生成器。此外,在调用curried函数时,请注意省略括号:
Random.randRange(i,j)s
@waldrumpus在Poly/ML中不支持随机结构。如何使用Poly/ML进行此操作?