一个简单php抽奖概率算法算法的实现以及如何预防超中

PHP中奖概率算法
[问题点数:40分]
本版专家分:0
CSDN今日推荐
本版专家分:142
本版专家分:756
匿名用户不能发表回复!|
CSDN今日推荐&>&常见的抽奖-根据指定概率抽奖(简单的)
常见的抽奖-根据指定概率抽奖(简单的)
上传大小:25KB
原文:http://blog.csdn.net/yysyangyangyangshan/article/details/
综合评分:4
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有26条
谢谢分享哦
很早之前下的,后来自己写了一个
可以使用,
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
常见的抽奖-根据指定概率抽奖(简单的)
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
yysyangyangyangshan
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
常见的抽奖-根据指定概率抽奖(简单的)js 中奖几率计算!
function getRand(obj){
this.obj =
return this.init();
//获取几率总和
getRand.prototype.sum = function(key){
var self =
var obj = this.
var sum=0;
for(var i in obj){
sum+=obj[i][key];
//取得结果
getRand.prototype.init = function(){
var result =
var self =
var obj = this.
var sum = this.sum('prob'); //几率总和
for(var i in obj){
var rand = parseInt(Math.random()*sum);
if(rand&=obj[i].prob){
result = obj[i];
sum-=obj[i].
//几率数组
var obj = [
{name:'广告一',prob:30},
{name:'广告二',prob:18},
{name:'广告三',prob:39},
{name:'广告四',prob:60},
{name:'广告五',prob:73},
//使用方法
// $result = new getRand(obj);
//测试数据,循环1000次取得每个数据出现的次数
var record = [];
for(var i = 0;i&1000;i++){
var result = new getRand(obj);
var index=
for(var j in record){
if(record[j].name==result['name']){
if(index!==false){
record[index].num+=1;
record.push({name:result['name'],num:1});
console.log(record);
0:{name: "广告五", num: 331}
1:{name: "广告四", num: 262}
2:{name: "广告三", num: 194}
3:{name: "广告一", num: 132}
4:{name: "广告二", num: 81}
参照网络php几率计算函数:function get_rand($proArr) {
$result = '';
//概率数组的总概率精度
$proSum = array_sum($proArr);
//概率数组循环
foreach ($proArr as $key =& $proCur) {
$randNum = mt_rand(1, $proSum);
//抽取随机数
if ($randNum &= $proCur) {
$result = $
//得出结果
$proSum -= $proC
unset ($proArr);
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!js 计算奖品概率抽奖
之前做过一个用js进行奖品概率计算的功能,主要实现的是有一个初始概率,每次最多抽奖三次,当符合条件抽取根据设置的概率抽取奖品,记录一下,跟后端概率逻辑一样
function get_prize(){
var gl = 50;//初始概率
var prize_info = [];//奖品信息
var first_rand = parseInt(Math.random()*100)+1;//初始随机概率
var prize_arr = get_prizes.split(‘,’);//已获得奖品记录
if(first_rand &= gl && prize_arr.length&3 && gl != ”){
//当符合抽奖条件后进行概率抽奖
prize_info.sort(function(b, a) {
return b.prize_gl - a.prize_
});//给奖品通过概率排序
var rand = parseInt(Math.random()*100)+1;
var sum = 0 ;
var flag = ”;
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!一道关于抽奖的算法
假设,1个箱子里可以开出10种道具,每次打开只能得到1个道具,每种道具出现的概率都是10%,每种道具都有3种品质(例如:1星,2星,3星),如果开出非最高品质的这种道具(例如1星或2星),则增加这种道具的积分,当这种积分达到20时,则相当于得到这种物品的最高品质。
问:平均需要开启这种箱子多少次,能够得到这种箱子中所有道具的最高品质道具?
(目前还没有答案,写下来,自己解着玩的)
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 php 抽奖算法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信