首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

网游服务端面试题求解解决办法

2013-03-12 
网游服务端面试题求解1.游戏中有一个节日活动,活动时间是从早上8点到晚上8点这12个小时。活动期间,随时都有

网游服务端面试题求解
1.游戏中有一个节日活动,活动时间是从早上8点到晚上8点这12个小时。活动期间,随时都有可能会有玩家向npc交付任务。系统需要在活动期间内交付任务的玩家中随机选取3名玩家,在交付任务的同时给予奖励。在参与玩家人数不确定的情况下,如何随机选取?

2.如何在半径为1的圆内均匀的随机选中一点?假设圆心在坐标(0,0)。可用工具float rand(),该函数可以均匀的返回[0,1]内的随机数。
面试 网游
[解决办法]

引用:
引用:1. 如果要保证所有人的中奖概率相等的话那是不可能的。你需要改变需求,或者是允许不公平(有人得奖概率高有人低)。看你需求。
2. 看你需要的概率分布是怎样的。如果概率累积函数关于面积成正比的话,那么因为圆面积除以2*2正方形的比值是定值pi/4,你可以随机在2*2正方形里取点,如果取到圆外的情况下重新取点。不用担心是不是会非常……

要求公平,保证恰好3人中奖,当场得知中奖,3点里至少需要牺牲一点。想要同时满足那你就必须在第一个人来的时候就知道最终有多少人,那是不可能的。

rand()*2-1就能取-1到1了,这是小问题。
[解决办法]
lz头像给力,回答一下第一题

第一题的需求是必须估算出提交活动的人数m,这个只要知道服务器相关数值和历史活跃数据,计算不难。
剩下的问题是,如何在m人中以几率N抽奖保证抽中奖的人数为3.
可转化为以几率N抽奖抽m/3次必中,N多大
即(1-N)^(m/3)<=0.000000...01
可求出N的边界值。
当然,因为m是估算值,N可适当提高,当中奖数达到3人后,N=0。这样既能保证公平,又能即时通知中奖,且保证3人中奖,缺陷是,存在0.000000...01的误差率,但可以解决实际问题。

热点排行