惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - Aowind

Freeswitch 安装爬坑记录1 兜兜转转,最后还是又回来研发了。 我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。 好久没有写随笔了,记录个旋转算法。 我的G1,1.6固件,用起来越来越感觉不错了 JSON定义AS项目界面 - Aowind - 博客园 [转]将数据库表存入内存中,随时调用 [转]asp.net中对DataTable数据进行排序、检索、合并、分页、统计 - Aowind - 博客园 AjaxPro快速入门 最近的工作 光阴真的是贱(似箭),一不小心就又过一年了 简单的无框架Ajax应用 一个事件应用的例子 [转载]P2P之UDP穿透NAT的原理与实现 [转载].Net和Flash如何进行数据交互 一个实例来简单的说明接口 有关Asp里Split函数使用多个分割符的方法 自己写的一个asp.net的生成曲线图的过程 利用Ajax技术写一个迷你留言板WEB控件
用于模拟短信群发情况的随机数产生
Aowind · 2006-11-08 · via 博客园 - Aowind

短信下发时的一些条件
每分钟最高发送量,每分钟最高发送量,每分钟标准发送量,发送总量,
最后在产生每分钟发送量的随机数时还加上了一个波幅值来控制随机数偏向标准量的波动,这样可以模拟出网路情况好和不好时的不同状态。

下面是随机数序列产生的类

public class dataclass
{
    Random rand 
= new Random();
    
//生成随机数;
    private int getrand(int min,int max)
    
{
        
int temprand = rand.Next(min, max);
        
return temprand;
    }

    
//生成带最大最小偏向和波幅的随机数
    private int getformatrand(int min, int max, int def,int wav)
    
{

        
int[,] temprand = new int[wav, 2];
        
        
for (int i = 0; i < wav; i++)
        
{
            temprand[i, 
0= getrand(min, max);
            temprand[i, 
1= (int)Math.Abs(temprand[i, 0- def);
        }

        
        
int temp = 0;
        
for (int j = 0; j < wav - 1; j++)
        
{
            
for (int i = 0; i < wav - 1; i++)
            
{
                temp 
= 0;
                
if (temprand[i, 1> temprand[i + 11])
                
{
                    temp 
= temprand[i, 1];
                    temprand[i, 
1= temprand[i + 11];
                    temprand[i 
+ 11= temp;
                    temp 
= temprand[i, 0];
                    temprand[i, 
0= temprand[i + 10];
                    temprand[i 
+ 10= temp;
                }

            }

        }

        
return temprand[00];
    }

    
/// <summary>
    
/// 生成发送数据
    
/// </summary>
    
/// <param name="min">单位时间内最小发送量</param>
    
/// <param name="max">单位时间内最大发送量</param>
    
/// <param name="def">单位时间内标准发送量</param>
    
/// <param name="wav">波幅,1波动最大,数字或大波动越小</param>
    
/// <param name="num">发送总量</param>
    
/// <returns></returns>

    public string[] getsendnum(int min, int max, int def, int wav, int num)
    
{
        
string temp = "";
        
        
for (int i = 0; i < num; )
        
{
            
int temprand = getformatrand(min, max, def, wav);

            
if ((i + temprand) >= num)
            
{
                temprand 
= num - i;
                i 
+= temprand;
                temp 
+= temprand;
            }

            
else
            
{
                i 
+= temprand;
                temp 
+= temprand + ",";
            }

            
        }

        
        
string[] str = temp.Split(new char[]{','});
        
return str;
        
    }

}

产生的是一组字符串数组,但都是数字,必要时可以转成整型应用就是了。

下面给两个演示图,主要是看波幅的控制
波幅为5时的情况
bf5.JPG
再来个波幅为50时的情况图
bf50.JPG
可以看到随机数产生的波动效果了吧。

其实思想很简单,在范围内产生的随机数的波动是控制不了的,那么怎么控制它偏向某个值呢?很简单,取多个随机数,从中找出离标准值最近的,也就是用它减标准值后,绝对值最小的那个,那么其它不要了,就取这个就行了,这样产生的一系列随机数就会向标准值偏向,每次产生的越多,最终得出的数值就离标准值越近,所以我这里这个波幅值(网络环境)其实就是定义的随机数每次产生的个数,在多少个中选一,当然数字越大,波幅越小了,哈哈!

这是一个小项目里用到的,接下来我要做的就是把生成的这组数据转成曲线图,对客户来说就看到一个比较完美的模拟了。