关于随机抽签程序的问题!

tszhiro 2010-05-16 12:45:19
我先附上代码
int number = 10 ; // 设置抽签号码为10个
string[] persons = new string[number]; //保存抽签者的名称
int[] draws = new int[number]; // 数组保存签号
int[] results = new int[number];
for(int i = 0 ; i<number ; i++) //初始化prson ,draws数组
{
preson[i]="user"+i.ToString().padleft(2,'0');
draws[i]= i+1; // 与问题相关的代码, 签号为[ 1 - 10 ] !
}
Random random = new Random();//创建生产随机数的实例
for(int = 0;i<number;i++)
{
int no = random.Next(0,number); //产生随机数
while(draws[no]== 0) //如果已被签号抽到,进入循环,再抽
{
no=random.Next(0,number);
}
results[i]=draws[no]; //签号保存到results数组
draws[no] = 0 ; //标识签号也被抽到
}


问题 : 1 . int no = random.Next(0,number); 这个怎么理解? 是否从0-10里面随机抽取,但包括0但不包括10 ?
问题 : 2 . draws[i]= i+1; 这个是 设置签号的 . 签号由1 - 10 , 那么 results[i]=draws[no]; 这个是搞什么飞机的!!!
no 0-9 但定义draws[i] 是1- 10
这两个怎么相等, 就算可以赋值 , 签号也是0-9 才对吖, 为什么输出的签号却是1-10
问题 : 3 . 对于前面定义了draws[i] , 那这里的draws[no] , 是什么意思?

各位朋友,我是初学者, 这段是书中的代码, 原谅我的愚笨, 我琢磨了几天,还是搞不清楚 , 请各位能对我伸一伸友谊之手,能帮帮我这个初学者, 50分, 对于3个问题来说,是十分的少,我明白, 但这已经是我的一半分数, 为什么还留一半? 是因为我知道还有很多很多问题要问,我怕以后没分数问问题了. 可能对于各位来说, 我这些问题很简单,但对于我这个初学者来说,可以说是比较难懂的, 在这里,再次谢谢能伸手帮助我的人. 759466791 这个是我的Q号, 我不是在做广告,是请一些热心帮助我的人,能抽空指导一下我,好让我少走弯路.谢谢
...全文
357 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxjkszl 2011-11-02
  • 打赏
  • 举报
回复
Random ra = new Random(DateTime.Now.Millisecond);生成随机数
Random.Next (Int32, Int32)
一个大于等于 minValue 且小于 maxValue 的 32 位带符号整数,即:返回的值范围包括 minValue 但不包括 maxValue
生成随机数取数组值
Newbie0617 2011-07-04
  • 打赏
  • 举报
回复
fule..
aihui109 2010-05-17
  • 打赏
  • 举报
回复
楼主是问语法还是问代码逻辑?

语法问题,楼主看书更好。
至于代码逻辑,语法明白了,这代码量逻辑应该不难吧。如果这不能试着自己解决,比这长的逻辑怎么办?
superming_jann 2010-05-17
  • 打赏
  • 举报
回复
跟断点 然后看看里面的值 一目了然!
skep99 2010-05-16
  • 打赏
  • 举报
回复
问题1
包括0,不包括10
threenewbee 2010-05-16
  • 打赏
  • 举报
回复
不要相信书,要看MSDN。
yx5131421 2010-05-16
  • 打赏
  • 举报
回复
1 . int no = random.Next(0,number); 这个怎么理解? 是否从0-10里面随机抽取,但包括0但不包括10 ?
包括边界
问题 : 2 . draws[i]= i+1; 这个是 设置签号的 . 签号由1 - 10 , 那么 results[i]=draws[no]; 这个是搞什么飞机的!!!
no 0-9 但定义draws[i] 是1- 10
这两个怎么相等, 就算可以赋值 , 签号也是0-9 才对吖, 为什么输出的签号却是1-10
因为 draws[i]= i+1;
问题 : 3 . 对于前面定义了draws[i] , 那这里的draws[no] , 是什么意思?
加1 用

qq2013 2010-05-16
  • 打赏
  • 举报
回复
ding
wuyq11 2010-05-16
  • 打赏
  • 举报
回复
Random ra = new Random(DateTime.Now.Millisecond);生成随机数
Random.Next (Int32, Int32)
一个大于等于 minValue 且小于 maxValue 的 32 位带符号整数,即:返回的值范围包括 minValue 但不包括 maxValue
生成随机数取数组值
tszhiro 2010-05-16
  • 打赏
  • 举报
回复
上面的, 我就是不明白才问问题, 你就两三行,真看不明白.
随机抽签与自动计时工具是一款专业的解决组织项目评审、答辩和竞赛等活动时抽签与自动计时问题的软件。 软件可以实现自定义定时时间和提醒时间,以“秒”为最小计时单位。支持预置三个定时时间:定时一、定时二和定时三,方便用户根据需要在三个预置好的定时时间之间进行动态切换。 为了保证顺序安排的公平性,软件还有随机抽签功能,并且有三种抽签方式:随机抽取顺序号、按名单随机抽签和PPT图文随机抽签抽签不会重复;软件在启动计时后会隐藏计时界面,程序在后台运行计时结束时时主界面可自动弹出;本软件操作简单、功能齐全,适合需要进行定时控制、定时提醒的大型会议、答辩和竞赛等场合使用。 随机抽签与自动计时工具的安装   把下载好的安装包解压到当前文件夹,之后双击Setup.exe运行文件进行安装,打开的时候会出现安装框,依次开始安装,依照步骤点击下一步,并选择同意协议和软件安装位置即可。最后点击完成按钮,随机抽签与自动计时工具的安装过程就完成了。 随机抽签与自动计时工具的使用   安装完成后,点击随机抽签与自动计时工具快捷方式即可进入随机抽签与自动计时工具软件,如图所示,这是软件的主界面,输入定时时间和提醒时间点击开始按钮即可开始计时;点击抽签按钮,进入抽签界面。     如图所示,这是抽签界面,可按自己所需选三种抽签方式:随机抽取顺序号、按名单随机抽签和PPT图文随机抽签中的一种。     如图所示,这是随机抽取顺序号方式截图。     如图所示,这是按名单随机抽签方式截图。其他的功能就有小伙伴们自己去尝试吧。 随机抽签与自动计时工具的卸载   依次选择开始-> 所有程序 ->随机抽签与自动计时工具 ->卸载随机抽签与自动计时工具。 或者依次打开我的电脑->卸载或更改程序->卸载你所卸载的软件,您可以用 Window XP控制面板中的添加或删除程序功能,或用 Windows Vista、Windows 7中的程序和功能删除随机抽签与自动计时工具, 然后点击开始卸载,按步骤依次点击下一步,直至完成。

62,041

社区成员

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

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

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

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