关于算法,很头大,请大家帮忙,200分送上(200分)

C

chatop

Unregistered / Unconfirmed
GUEST, unregistred user!
要求是这样的
这个小工具是用来算投标标的可能性用的
1.用户输入N个金额的区间,比如130-500 566-741 .........
2.用户输入产生N个随机数 比如 1......10000
3.用户为所输入的金额区间,设定出现机率,数字越大,从中生产的随机数直多,如果有5个区间,每个区间的出现机率为20%,那时
应该在这5个区间里每个区间中生产一个随机数,如果其他都是0%,而第5区间是100,用户要求输出3个随机数,就应该在第5区间
里生产出这3个随机数
4.随机数的生产是在区间内的数,可包括区间开始和结尾的二个数
5.取出用户需要生产的N个随机数后,将随机数取平均值
如果n <5,就直接取n的平均值 后输出
如果n>=5 and <9,则将去掉最小的值和最大的值,将剩下的值取平均值 后输出
如果n>=9,则去掉最小的2个值和最大的2个值,将剩下的值取平均值 后输出

前贴有高手给出下面这段代码,,但似乎并不符合要求。
再求高手支招。谢谢。。。。
再讲清楚点,意思是这样的

有3个数组
array1=1,5,10 //区间的低位值
array2=3,8,15 //区间的高位值
array3=10,20,70 //区间的取值机率
其实这三个数组的意思是
1-3|10,5-8|20,10-15|70
1到3,机率10,5到8机率20,10到15机率70
怎么按机率,在这三个数组里,取出N个随机数?
比如 ,取3个随机数
有可能都是从70机率的区间里取出来的,当然也有可能70里取2个,其他二个中取一个,或者平均取
 
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
老大,既然是算法问题,就放到“基础篇-数据结构”分类中去嘛... 否则沉下去就找不到了...
 
L

LeeChange

Unregistered / Unconfirmed
GUEST, unregistred user!
自己都描述的这么清楚了,算法已经出来了,其实人怎么想程序就怎么编.
就以你的1-3|10,5-8|20,10-15|70这组数据为例子:
1.在[0,100)区间产生一个随机数a,如果a落在[0,10)区间内,则在[1,3]区间内随机取n1;如果a落在[10,30)区间内,则在[5,8]区间内随机取n1;如果a落在[30,100)区间内,则在[10,15]区间内取n1
2.重复1 N遍
 
C

chatop

Unregistered / Unconfirmed
GUEST, unregistred user!
是的,已经自己弄好了,散分了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
950
SUNSTONE的Delphi笔记
S
顶部