我写了一个《518抽奖软件》就是年会滚动大屏幕抽奖的。
但是, 有人反映说,他想在部门间不要集中在某个部门中奖,我就想了, 随机的,没法保证平均分配到部门啊,对吧? 随机的你要求平均开来。
后来研究了下,新版C++里面有个均匀分布的随机算法,我就打算采用了这个算法。问题是:
随机抽奖,随机才公平,你搞均匀分布,那不是不公平了,例如,刚开始中的是行政部门多,到后面就要财物部门多吗,那还谈什么随机性呢?
不知道,对随机抽奖,和部门之间均匀之间是否必然矛盾的,有什么算法解决?
我写了一个《518抽奖软件》就是年会滚动大屏幕抽奖的。
但是, 有人反映说,他想在部门间不要集中在某个部门中奖,我就想了, 随机的,没法保证平均分配到部门啊,对吧? 随机的你要求平均开来。
后来研究了下,新版C++里面有个均匀分布的随机算法,我就打算采用了这个算法。问题是:
随机抽奖,随机才公平,你搞均匀分布,那不是不公平了,例如,刚开始中的是行政部门多,到后面就要财物部门多吗,那还谈什么随机性呢?
不知道,对随机抽奖,和部门之间均匀之间是否必然矛盾的,有什么算法解决?
关注【相关推荐】
代码块
#include <stdio.h>
#include <stdlib.h>
int binsearch(int x, int v[], int n);
int main()
{
int x=3;
int v[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n=10;
int a;
a=binsearch(x, v, n);
printf("%d\n", a);
system("pause");
return 0;
}
int binsearch(int x, int v[], int n)
{
int low, high, mid;
low=0;
high=n-1;
mid=(low+high)/2;
while((low<=high)&&(x!=v[mid])){
(x<v[mid]) ? high=mid-1 : low=mid+1;
mid=(low+high)/2;
}
if (x==v[mid])
return mid;
else
return -1;
}
如果程序设计有错误或更简洁的方法,欢迎并感谢您指正出示,谢谢!