编辑:这是到目前为止我生成病人八重音的代码。 (感谢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;
我现在的问题是如何索引布尔列表?
答案 0 :(得分:1)
所以我一直在寻找一些帮助来定义我的十进制元组以完成我的项目,瞧,我发现有人张贴了我的整个项目,希望能得到讲义的答案。不仅如此,而且我几乎可以肯定我们是在同一堂课上,并且您认为此项目应在前一天晚上发布,这是负责任的学生的职责吗?可以肯定的是,无论如何,反正没人会帮您做功课,事实上,我什至不知道这是不允许的。
也许您需要做一些工作,然后在实际完成任何操作后寻求帮助。或者,也许在下一阶段中再加一点努力。
编辑:我会给你一些入门的方法。
要计算加权概率,您需要种子。
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)
这就是我决定进行加权概率部分的方式,如果您有创造力,可以将其等同于其他加权部分。祝你好运。