全球FlexSim系统仿真中文论坛

搜索
查看: 5622|回复: 4
打印 上一主题 下一主题

怎样按比例控制临时实体的产出

[复制链接]
跳转到指定楼层
1#
yuanet 发表于 2013-6-4 21:54:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想问一下怎样按比例产出临时实体例如:我要产出四种不一样比例的临时实体,分别按20% 30% 40% 10%这样的比例产出,两个的话就比较简单直接用bernoulli(,,,)解决可是四个就头疼了,想过用标签解决可是不知道怎么用求教
2#
慧娴亚伦 发表于 2013-6-5 10:32:10 | 只看该作者
我认为不需要使用到标签,我是通过看临时实体按比例发送的代码找到的灵感。建议你可以在发生器的创建触发中编写以下代码:
. a* _7 w1 q  B9 S. K3 V( w* E: V/**Custom Code*/: C- _1 m1 }# J2 Q
treenode item = parnode(1);+ _) {/ ^% }5 W/ |# Y
treenode current = ownerobject(c);  {+ ^& Y+ W7 ]
int rownumber = parval(2); 2 I' C0 a1 m. D' E5 C: q

. X3 [" t* W, k) f4 \3 g# K5 hdouble percent1=20;
, [/ U) z- v4 M( W) Adouble percent2=30;
) j1 n& X  Q9 K4 A0 \double percent3=40;
- T# m. ?- p& G, Ndouble percent4=10;- y6 D, m. C- q. T, ~/ i5 T8 G
double random=uniform(0,100,1);
0 ]+ s& |( \8 ?  P, J6 ?! l2 V1 ~9 T: C' v' \, _5 a: f
percent2 = percent1 + percent2;  _1 {2 W. p/ P; l8 N9 H8 W
percent3 = percent2 + percent3;6 U4 {. N' @5 C6 O6 i
percent4 = percent3 + percent4;3 Y) f) x7 F  E! `: A
8 x) D- u" `6 x- ~
if (random<=percent1)
; o% z. U! B, x4 W5 r- hsetitemtype(item,1);) G* j  u6 f7 f" {+ g
else if (random<=percent2)
' ~. w/ }- \# q/ Asetitemtype(item,2);
- j! a- P9 H9 a; Oelse if (random<=percent3)
5 Q$ P/ a3 c& X6 d! Tsetitemtype(item,3);
, f. w" l* t: Lelse if (random<=percent4)' G( c+ f5 j: O. j; Y
setitemtype(item,4);; O5 l1 i7 b% Z8 I2 k. [2 ?
1 h9 P2 B/ @& A7 [
这样无论你是什么样的发送比例只要修改代码的部分内容都可以很容易的完成。
3#
茜茜_13 发表于 2013-6-5 15:20:34 | 只看该作者
1# yuanet 3 E3 S' m% @+ v1 p
看看这个函数:dempirical
4#
 楼主| yuanet 发表于 2013-6-5 20:30:49 | 只看该作者
谢谢指点 很有帮助
5#
TsehHu 发表于 2013-6-7 19:20:50 | 只看该作者
对 2楼说的非常正确
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2025-5-10 00:09 , Processed in 0.063144 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表