全球FlexSim系统仿真中文论坛

搜索
查看: 3548|回复: 2
打印 上一主题 下一主题

根据一系列连续自然数生成一组重复连续自然数的方法

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2017-5-26 03:24:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2017-5-26 11:57 编辑
% l9 C# N/ o6 }4 M' x. B/ o2 x3 N0 K
原谅我的小学数学是体育老师教的,不知道这个标题的表达是否正确。举个简单的小例子:我们希望把上游发生器生成的临时实体均匀的发往下游5个端口,因此我们希望得到重复的、连续的1,2,3,4,5;1,2,3,4,5;1,2,3,4,5;……(一组重复连续自然数)。7 Q5 T* v# ^  M: o" y+ w8 H

5 O  B" ^- X- d6 v& ~  J  G8 h通常我们会根据发生器生成的临时实体的个数来生成这组重复连续自然数。. Y. l4 }3 @- c
发生器的工作机制如下:+ N# g. E$ j; F( s% R0 ~
生成临时实体--确定发送端口--离开。
4 J. F/ p5 y6 d( d; S9 Z( H需要注意的是,在离开触发被激活时,临时实体仍处于发生器内,并未真正离开发生器。也就是说,第一次离开触发被激活时,使用getoutput统计发生器的输出数量,得到的值为0。' I( B2 p0 d3 f3 s4 q, T- F
而当进入触发被激活时,临时实体已经进入。也就是说,第一次进入触发被激活时,使用getinput统计输入数量,得到的值为1。- w# ]0 q/ v8 ^* I! S$ G* [3 E7 U
所以我们在进入触发中用getinput命令得到的数值序列为1,2,3,4,5,6,7,8.....;而我们在离开触发中用getoutput得到的数据序列为0,1,2,3,4,5,6,7,......。+ L+ ~0 U% h2 S4 W& Y6 O/ A
如何将这组连续的自然数序列转换成重复的、连续自然组序列呢?使用“求余数”的函数可以实现实种重复。" }3 B. O  X$ p: r( J7 y' t
, c( J7 P1 `2 \7 l) F
如图,B列是用5除以A列得到的余数,是一组0~4的重复数,再加上1,就能得到1~5的重复数了。
2 e* @# `4 N/ y5 a, _8 U8 }$ o  A小结:5 `6 h1 q0 N$ G2 V/ c' |
对于getoutput:
  1. return getoutput(current)%5+1;
复制代码
对于getinput:
  1. return (getinput(current)-1)%5+1;
复制代码
附上Flexsim对fmod命令的解释。$ ~$ N- \! ^, I8 W1 ?) b
[size=13.3333px][size=1.1em]fmod [size=1.1em](num value1, num value2)8 t! ^6 R& b/ f4 v( N
Remainder of value1/value2 as a double- e$ T) H4 Z) B# ?! u8 E0 N5 n
Description' i# h6 F" q8 _
Remainder of value1/value2. fmod returns the floating-point remainder of value1 / value2. If the value of b is 0.0, fmod returns a quiet NaN. This command is great for getting a repeating set of numbers because no matter what value1 is, so long as value2 is unchanged, fmod will return a set of numbers that keeps repeating itself.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
2#
慧娴亚伦 发表于 2017-5-26 16:37:05 | 只看该作者
哈哈哈,我把这种找规律类型的处理叫做“小学奥数”,一些应用策略会带有这样的过程。
3#
lulu-luka 发表于 2017-5-27 00:41:03 | 只看该作者
Mark~谢谢加老师的分享~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-29 08:31 , Processed in 0.069621 second(s), 14 queries .

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

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