日期:2014-05-16  浏览次数:20407 次

oracle 存储过程实现上交所新股摇号算法,很有挑战性,存储过程高手进来看看
遇到一个一个摇号算法,需要用上交所新股摇号算法用存储过程实现,恳请存储过程高手能给点建议,在下在此谢谢大家了

摇号规则如下:
(1)              摇号采取“随机与均衡相结合”的办法,随机摇出中签号码或基本中签号码,然后递增或递减一个相等数,(递增或递减相
等数根据中签率不同而决定递增或递减数不同,如:万分之五,先摇出一个四位数作为基本中签号码,然后递增或递减2000得到其他4个中签号
码,即:10000/5)得出其它的中签号码。
(2)              如中签率为0.05622852%时:先产生万之五的中签号码,接着产生十万分之六的中签,再产生百万分之二的中签号码,接着
再产生千万分之二的中签号码。根据产生的中签号码,计算出中签号码个数,再产生出剩余的中签号码。如遇不能整除的比例数时,则将比例
数拆开。
(3)              一个号码只有一个中签机会,如果后产生的号码(包括尾数)与先前产生的中签号码相同,则将后产生的重复中签号码取消
,即刻按摇号规则摇出新的中签号码。
4、 新股摇号抽签使用怎样的拆分方法
遵循“随机与均衡相结合”的原则进行拆分。
举例如下:
千分之一,即随机摇出一个三位数的中签号码;
千分之二,先摇出一个三位数作为基本中签号码,然后递增或递减500得到另外一个中签号码;
千分之三,拆成千分之一和千分之二,得出方法同上;
千分之四,先摇出一个三位数作为基本中签号码,然后递增或递减250得到另外三个中签号码;
千分之五,先摇出一个三位数作为基本中签号码,然后递增或递减200得到另外四个中签号码;
千分之六,拆成千分之一和千分之五,得出方法同上;
千分之七,拆成千分之二和千分之五,得出方法同上;
千分之八,先摇出一个三位数作为基本中签号码,然后递增或递减125得到另外七个中签号码;
千分之九,拆成千分之四和千分之五(深市新股摇号多采用5+4规则),或拆成千分之一和千分之八(沪市新股摇号多采用8+1规则),得出方
法同上。



-----------------------------------------------------
要求 写个方法 传入中签率 得到摇号号码
例如 0.5 得到 1,3,5,7,9或者2,4,6,8,0 这
0.003  [907、407]、233=== 两组=2+1
0.004  [410、660、910、160]


1 楼 ray_linn 2011-05-19  
天下没有免费的午餐

我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html