0—100随机抽奖(0—100随机抽奖小程序)
大家好!今天让创意岭的小编来大家介绍下关于0—100随机抽奖的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,有小程序、在线网页版、PC客户端和批量生成器
本文目录:
C#用timer控件实现1~100随机数抽奖,已经抽中的不参与下一次循环,求代码
直接Random.Next(1, 101)可产生随机数,用一个List<int>存起来,每次新随机就会去这个List中找,如果找到就再随机,自到随机出新的数。
1、放一个TextBox框、要把MultiLine属性改成True。(模拟输出结果)
2、放个Timer
3、放个Button。
4、定义两个全局对象
int inTimer = 0; //原子锁对象List<int> DBList = new List<int>(); //集合
写Button的_Click事件就一句话了
{
timer1.Enabled = true; //开Timer
}
写Timer的Tick事件
{
//加原子锁,由于随机可能时间过长,造成多线程进入,污染DBList对象
if (Interlocked.Exchange(ref inTimer, 1) == 0)
{
Random rand = new Random(); //随机器
int nums = 0;
do
{
nums = rand.Next(1, 101); //1~100之间一个int
} while (DBList.Where(a => a == nums).Count() > 0);
DBList.Add(nums); //放到集合中
//在textbox1中输入
textBox1.Text = String.Join("rn", DBList.ToArray());
if (DBList.Count == 100) //100个数都出现了就关Timer
{
timer1.Enabled = false;
MessageBox.Show("结束!");
}
Interlocked.Exchange(ref inTimer, 0); //解原子锁
}
}追问
原子锁我倒是不需要,我的页面是用一个button来点击开始和停止,Timer控制出来的随机数用label在页面滚动显示,停止的时候出来一个数,再开始滚动的时候这个数就不包括在里面了。求指点...
追答你的意思就是timer1的作用,就是不停的随机出来数据,并显示到Label上,当你点按钮就停下来。其实真正随机是在按钮点停下来之后,会随一个1~100的数。对吧?
1、加全局List
List<int> DBList = new List<int>(); //集合2、Timer_Tick事件
private void timer1_Tick(object sender, EventArgs e){
Random rand = new Random();
label1.Text = rand.Next(1, 101).ToString(); //不停的随机1~101
}
3、Button_Click
{ //按钮是个互斥的,你点一下是开始,再点一下是结束
if (timer1.Enabled == true)
{
timer1.Enabled = false; //结束时会真正随机一个数放到List
if (DBList.Count < 100)
{
Random rand = new Random(); //随机器
int nums = 0;
do
{
nums = rand.Next(1, 101); //1~100之间一个int
} while (DBList.Where(a => a == nums).Count() > 0);
DBList.Add(nums); //放到集合中
label1.Text = nums.ToString();
}
else
{
label1.Text = "100个数全随机出来了!";
}
}
else
{
timer1.Enabled = true; //开
}
}追问
点击开始的时候循环滚动,点击停止的时候出来一个数,再点击开始的时候刚才出来那个数就不再参加循环了,因为要保证每个号码只能抽中一次
追答上面已经实现了呀,点开始时,不停的变化数字,再点一次就停下来了,会产生一个数字,这个数字,下次就不会在出现了。
追问没有,我试了,还是会出现
零到一百的随机数字是多少?
零到一百随机数字即任一个数字都是从0~100中绝对同等可能地抽取的数字。
要生成1~100之间的随机数,有大约两种办法,一是先生成0~1之间的一个随机小数,然后再扩大100倍,再取整数,就可以生成1~100之间的随机数。
第二个办法是直接生成1~100的随机数,方法是先生成一个Random对象,再使用nextInt(100)方法,就生成了指定范围内的随机数。
零到一百的随机数字表达方法:
如果生成0~100(包括0和100)的整数,是Int(rnd*(100+1))+0,不能去掉Int,Int表示去掉尾部小数。
rnd*100的值域是[0,100),不包括100的任意数。
rnd*101的值域是[0,101),不包括101的任意数,超过了100。
一至一百随机数是什么?
一至一百随机数是指在数字1到数字100之间随机取出一个数字,1到100没有固定的随机数。
如果生成0~100(包括0和100)的整数,是Int(rnd*(100+1))+0,不能去掉Int,Int表示去掉尾部小数。
rnd*100的值域是[0,100),不包括100的任意数。
rnd*101的值域是[0,101),不包括101的任意数,超过了100。
randi函数其他调用格式:
1、r = randi(imax),返回一个介于1到imax的伪随机整数。
2、r = randi(imax,m,n),返回一个在[1,imax]范围内的m*n的伪随机整数矩阵。
3、r = randi(imax,[m,n]),返回一个在[1,imax]范围内的的m*n的伪随机整数矩阵。
4、r = randi(imax,m,n,p),返回一个在[1,imax]范围内的m*n*p的伪随机整数矩阵。
0-100里随机取一个数共5次猜的机会怎样猜对的多一些?
没有诀窃。因为每次的概率都差不多1%。最好的也1/96。以上就是关于0—100随机抽奖相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: