如何使用 SML 随机生成八进制元组

How to randomly generate an Oct-Tuple with SML

本文关键字:八进制 元组 随机 何使用 SML      更新时间:2023-10-16

编辑:这是我到目前为止用于生成患者Oct-Tuples的代码。 (感谢 Anon 给了我如何计算加权概率/设置种子的博斯特(

fun genPatients(x:int) =
let
val seed=let
val m=Date.minute(Date.fromTimeLocal(Time.now()))
val s=Date.second(Date.fromTimeLocal(Time.now()))
in Random.rand(m,s)
end;   
val survivalrate = ref(1)
val numl = ref(1)
val td = ref(1)
val xray = ref(false)
val count= ref(0)
val emnum= ref(1000)
val ageList = [1, 2, 3, 3];
val xrayList=[false,true];
val age = Random.randRange (0, 3) seed;(* random age*)
val nextInt1 = Random.randRange(0, 1)(* random xray*)
val r1 = Random.rand(1,1)
val nextInt2 = Random.randRange(1, 10000000)(* random td*)
val r2 = Random.rand(1,1)
val r1hold= ref(1);
in
while !count < x do
(
count:= !count + 1;
List.nth(ageList, age);
r1hold:= nextInt1 r1;
td:= nextInt2 r2;
(!emnum,age,survivalrate,numl,[],[],xray,td);
emnum:= !emnum + 1
)
end;

我现在的问题是如何索引布尔列表?

所以我正在寻找一些帮助来定义我的 Oct 元组来完成我的项目,瞧,我发现有人发布了我的整个项目,希望得到一个讲义答案。不仅如此,我几乎可以肯定我们在同一个班级,你认为在项目到期的前一天晚上发布这个是一个负责任的学生所做的吗?很确定SO上没有人会为你做功课,事实上我什至不确定这是不允许的。

也许做一些工作,然后在你实际做完任何事情时寻求帮助。或者也许在下一阶段尝试更努力一点。

编辑:我会给你一些东西来帮助你开始。

要计算加权概率,您需要一个种子。

val seed=let
val m=Date.minute(Date.fromTimeLocal(Time.now()))
val s=Date.second(Date.fromTimeLocal(Time.now()))
in Random.rand(m,s)
end;

这是其一。然后你可以计算概率,至少对于年龄,像这样:

val ageList = [1, 2, 3, 3];
val ageInt = Random.randRange (0, 3) seed;
List.nth(ageList, ageInt)

这就是我决定做加权概率部分的方式,如果你有创意,你可以把它等同于其他加权部分。祝你好运。