一个可以设置中奖概率的抽奖程序

cyberspaces 2011-03-01 09:20:25
最近在做一个BP石油的抽奖促销的WEB程序,实现一个抽奖转盘,上面有10个奖品,可以分别设置奖品的中奖概率,请问各位有什么好的抽奖算法或者指点一下思路,谢谢!
...全文
9580 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
d568176261 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
我想实想这样的个功能有人能写吗?
人数100人,能抽100次奖。
奖池里面也是1-100的自然数。
每抽一次,就除去1人和他抽走的号码。
[/Quote]

我也想做个这样功能的抽奖 谁给点思路
嘴哥臭鼬 2011-03-02
  • 打赏
  • 举报
回复
楼主不要想得太复杂,后台和前台分开
嘴哥臭鼬 2011-03-02
  • 打赏
  • 举报
回复
中将概率在后台控制的,前台js只是播放动画就行了,想怎么控制概率就怎么控制,以前我也做过一个类似的。
gohofz 2011-03-02
  • 打赏
  • 举报
回复
我想实想这样的个功能有人能写吗?
人数100人,能抽100次奖。
奖池里面也是1-100的自然数。
每抽一次,就除去1人和他抽走的号码。
jeje 2011-03-01
  • 打赏
  • 举报
回复
1L的思路不错,你可以把那个随机数字控制在100000,如果随机数字在什么范围如在0-80000就谢谢惠顾,在800001-900000给个安慰奖什么的。最大的奖就只设随机数为100000。具体数字还是要看你们自己控制。
angelababa~ 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sp1234 的回复:]

首先不要纠缠界面问题。界面应该由专业的美工和可用化设计人员来设计,它只是需要编程人员支持而不是纠缠在编程中。

对于编程部分的算法,我写其中一种方法的demo简单演示一下:C# code
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication1
{
……
[/Quote]

还是LINQ的,不错
子夜__ 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sp1234 的回复:]

首先不要纠缠界面问题。界面应该由专业的美工和可用化设计人员来设计,它只是需要编程人员支持而不是纠缠在编程中。

对于编程部分的算法,我写其中一种方法的demo简单演示一下:C# code
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication1
{
……
[/Quote]
NICE 收藏了。
  • 打赏
  • 举报
回复
首先不要纠缠界面问题。界面应该由专业的美工和可用化设计人员来设计,它只是需要编程人员支持而不是纠缠在编程中。

对于编程部分的算法,我写其中一种方法的demo简单演示一下:
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication1
{
class Program
{

public static void Main()
{
var 转盘 = new List<奖品>{ new 奖品{ 名称="笔记本", 概率百分比=10},
new 奖品{ 名称="石楠木烟斗", 概率百分比=20},
new 奖品{ 名称="一块糖", 概率百分比=80},
new 奖品{ 名称="随便", 概率百分比=1},
new 奖品{ 名称="一只绣花鞋", 概率百分比=5}};
Enumerable.Range(1, 20).ToList().ForEach(x =>
{
Console.WriteLine("第{0}次选择{1}", x, 抽奖(转盘).名称);
});
Console.ReadKey();
}

static Random Rnd = new Random();

private static 奖品 抽奖(List<奖品> 转盘)
{
return (from x in Enumerable.Range(0, 1000000) //最多支100万次骰子
let 随机选择一个奖品 = 转盘[Rnd.Next(转盘.Count())]
let 支骰子 = Rnd.Next(0, 100)
where 支骰子 < 随机选择一个奖品.概率百分比
select 随机选择一个奖品).First();
}

class 奖品
{
public string 名称;
public int 概率百分比;
}

}
}
唵嘛呢叭咪吽 2011-03-01
  • 打赏
  • 举报
回复
奖品1-10随机到1算中,抽中奖品1的几率为10%
奖品1-10随机到1时再随机一次还是1就算中,抽中奖品1的几率为10%*10%
cyberspaces 2011-03-01
  • 打赏
  • 举报
回复
期待大家可以提供些更多的参考,谢谢了,
重点不是随便可以抽出奖品,而是可以控制不同奖品的机率问题。
wuyq11 2011-03-01
  • 打赏
  • 举报
回复
在1~n范围内随机选10个不重复的数字作为中奖人
http://topic.csdn.net/u/20081229/09/7dadbe7c-264f-4b5e-8c64-0ea13649672a.html
午夜雨 2011-03-01
  • 打赏
  • 举报
回复
错了,是1L
午夜雨 2011-03-01
  • 打赏
  • 举报
回复
2L说的很正确,你可以对应设置奖品,比如,8.9.10号奖品很贵重,当你随机到8,9,10的时候,再产生一个随机数。直到不等于这个数字为止,但是这个奖品肯定是要送出的。所以你可以再产生一个随机数,来控制你随机到8,9.10的次数。
午夜雨 2011-03-01
  • 打赏
  • 举报
回复
生成一个随机数,这个随机数范围为1到10,然后分别对应这个10个奖品。然后做一个按钮事件,当我点击这个按钮的时候,则产生一个随机数,再将这个随机数打印出来,即获得相应的奖品,或者在按钮事件中就关联数字和奖品的关系,直接在文本控件上显示你获得的奖品。当然界面你就可以做的很美观了!
qiudong_5210 2011-03-01
  • 打赏
  • 举报
回复
我有个同学他们做抽奖的时候就是点击10万次提交一次

其实可以写个随机数0-9

然后每个奖品对应一个随机数

然后再判断,如果抽中那个比较贵重的奖的话,继续进行随机产生一个0-9的随机数

具体没做过这个,感觉是这样的

或者说是产生一个比较大的数0-9999999

然后随便给10奖品编上号码,然后判断
zzz9413 2011-03-01
  • 打赏
  • 举报
回复
我是投色子。要求等于某个具体的数字才有奖品
比如设置钢笔概率为10%,就是 random(10)=10时中奖钢笔
设置手机中奖率1/1000,就是 RANDOM(1000)=1000中奖手机。
奖品有限数量,就中一次,后面减一次。就是先判断还有没有奖品:手机数!=0;RANDOM(1000)=1000;手机数-1;
jeven_xiao 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sp1234 的回复:]
首先不要纠缠界面问题。界面应该由专业的美工和可用化设计人员来设计,它只是需要编程人员支持而不是纠缠在编程中。

对于编程部分的算法,我写其中一种方法的demo简单演示一下:

C# code
using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplicatio……
[/Quote] 有这样的人才在,你还愁什么

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧