JSP猜数字游戏代码 随机excel生成随机数4个0~9的随机数

当前访客身份:游客 [
保持学习者的态度 more information about me: echow.me
:引用来自“每天打起精神即可”的评论说好的系列呢...
:说好的系列呢? - -!
:实际用的时候多用nio框架么?
:引用来自“巨轮”的评论二面了吗?么有。
:二面了吗?
:引用来自“邓攀”的评论广州的?华南理工? 嗯。
:广州的?华南理工?
今日访问:9
昨日访问:62
本周访问:9
本月访问:280
所有访问:12583
Java编程中如何在一个数值范围内生成一个伪随机数
发表于1年前( 15:51)&&
阅读(266)&|&评论()
0人收藏此文章,
在软件开发编程中,我们经常需要生成一个随机数值。比如在1~100的整型范围内生成一个随机数。幸运的是,由于在Java&API中提供了生成随机数的类,可以通过java.util.Random类、Math.random工具方法和ThreadLocalRandom类快速地生成一个伪随机数。在Java中的工具方法random()生成随机数更加方便,它只返回一个随机的浮点数,另一方面通过使用Random,你可以生成一个伪随机整型或者浮点型的数值。在这篇文章中,将会讨论在Java中如何生成一个随机数,用例子说明产生随机整型和实数、在给定的范围内生成随机一个数,同时还将探讨java.util.Random类和Math.random()之间的区别。
通过例子在解释Java如何生成随机数
在前面的简介中提到Java中的Random类被用来创建一个随机数,通过默认的种子,你可以创建一个Random类的实例,或者提供你自己的种子创建一个定制的Random实例,Random(long seed)。这个类提供了返回随机整型、浮点型和布尔型的方法。
Random random = new Random()
for(int i=0;i&5; i++){
int randomInteger = random.nextInt();
System.out.printIn("Random Integer in java:" + randomInteger);
Random Integer in java -
Random Integer in java -
Random Integer in java -
Random Integer in java
Random Integer in java
使用Java中整型的数值范围(-2^31~2^31-1由正数和负数组成),Random类默认在这个数值范围内生成一个随机数。同样地,你可以使用Math.random()方法创建一个随机数。
for(int i=0; i&3; i++){
double randomDouble = Math.random();
System.out.println("Random Number in java:" + randomDouble);
Random Number in Java: 0.705
Random Number in Java: 0.052
Random Number in Java:0.283
如何生成整型数值
如果你想在两个整型数值的范围内生成一个随机整数,建议使用random.nextInt()方法,该方法将返回等可能性的全部整型。你也可以使用Math.random()方法先生成一个随机的浮点数,然后再转化为整型,综上所述,你有两种方式生成随机数整数
如何生成浮点型数值
与生成整型数值相似,这里用到的是Random类中的nextDuoble()方法,此方法返回0.0~1.0之间的伪随机浮点数。
如何生成布尔型
使用Random类中的nextBoolean()方法生成一个布尔型的值。
在给定的两个数之间随机生成一个数
使用Math.random()方法和Random类可以在一个范围中生成随机数。大多数时候,我们仅需要整型而不是Math.random()方法生成的随机浮点型,所以需要对浮点型进行更改为整型。
for(int i =0; i&3; i++){
int randomInteger = random.nextInt(10);
System.out.println("pseudo random int in a range : " + randomInteger);
pseudo random int in a range : 7
pseudo random int in a range : 1
pseudo random int in a range : 3 Random.nextInt(10)方法的返回值是0&=x&10之间的一个随机数。
在0~10之间的随机数
下面的代码段能够生成一个x,x的取值范围为:0&=x&10。由于使用了Math.random()方法,返回值为0~1.0。
for(int i =0; i&3; i++){
int randomInt = (int)(10.0 * Math.random());
System.out.println("pseudo random int between 1 and 10 : " + randomInt );
pseudo random int between 1 and 10 : 4
pseudo random int between 1 and 10 : 0
pseudo random int between 1 and 10 : 2
Read more: /2013/05/how-to-generate-random-numbers-in-java-between-range.html#ixzz2zJWpxdHB
Math.random()方法和Random类不同点
使用这两种方式都可以生成一个随机数,但是两者之间的用法和表现形式还是有一点区别的。
为了生成一个随机数,实际上这些都是为随机数,使用Random类,你需要创建该类的一个实例;对于Math.random()方法,第一次调用该方法时会创建一个新的伪随机数生成器,用表达式表示如:new java,util.Random()。这个伪随机数生成器等同于new Random(),并且仅在这能被使用。
Random类支持生成随机整型、浮点型和布尔型,而Math.rand()方法仅支持生成一个在0.0~1.0之间的浮点型数值。
使用Math.random()方法时,我们不能更改生成随机数的种子,它是在任意一个Math实例调用该方法时创建的。这个方法为同步的,这意味着允许在多线程环境下使用,随着线程数的增加,会导致资源竞争。通常在多线程环境下同时想创建随机数,土建使用ThreadLocalRandom,提高程序的性能。
Math.random()方法是一个工具方法,Random类才是真正的随机数生成数,它提供了一系列方法用以生成不同类型的数据类型。
在Java中生成随机数可用三种方式:Random类、ThreadLocalRandom类或者Math.random()方法。
Random类能生成整型、浮点型或布尔型。
生成的随机数是伪随机数,
Math.random()仅生成0.0~1.0之间的浮点类型数值。
Math.random()是线程安全方法,在多线程环境下能够被调用。但是为了降低资源竞争而把随机数生成器分开不是一种明智的做法。在jdk1.7中,如果你想在多线程最后那个共享随机数生成数,ThreadLocalandom类为不错的选择。
尽管随机数接受一个长整型的种子(64bits),但只使用了48bits生成随机数。
Random类不是final类,你可以继承实现你自己的算法。
使用Math.random()方法容易和方便的创建随机数。
上次在面腾讯实习生时,面官要求手写代码时,当时不知道jdk中有随机数生成的方式,婶婶地被BS了一把,哈。现在补回来。
1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读1578人阅读
& & & & 函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 srand()会导致相同的随机数序列被生成。
& & & & srand((unsigned)time(NULL))则使用系统定时/计数器的&#20540;做为随机种子。每个种子对应一组根据算法预先生成的随机数,所以,在相同的平台环境下,不同时间产生的随机数会是不同的,相应的,若将srand(unsigned)time(NULL)改为srand(TP)(TP为任一常量),则无论何时运行、运行多少次得到的“随机数”都会是一组固定的序列,因此srand生成的随机数是伪随机数。
& & & & 库函数中系统提供了两个函数用于产生随机数:srand()和rand()。 原型为:
& & & & 函数一:int rand(void);
& & & & 从srand (seed)中指定的seed开始,返回一个[0, RAND_MAX(0x7fff)]间的随机整数。
& & & & 函数二:void srand(unsigned seed);
& & & & 参数seed是rand()的种子,用来初始化rand()的起始&#20540;。
& & & & 但是,要注意的是所谓的“伪随机数”指的并不是假的随机数。其实绝对的随机数只是一种理想状态的随机数,计算机只能生成相对的随机数即伪随机数。计算机生 成的伪随机数既是随机的又是有规律的 —— 一部份遵守一定的规律,一部份则不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这正点到了事物的特性 —— 差异性;但是每种树的叶子都有近&#20284;的形状,这正是事物的共性 —— 规律性。从这个角度讲,我们就可以接受这样的事实了:计算机只能产生伪随机数而不是绝对的随机数。
& & & & 系统在调用rand()之前都会自动调用srand(),如果用户在rand()之前曾调用过srand()给参数seed指定了一个&#20540;,那么 rand()就会将seed的&#20540;作为产生伪随机数的初始&#20540;;而如果用户在rand()前没有调用过srand(),那么系统默认将1作为伪随机数的初始 &#20540;。如果给了一个定&#20540;,那么每次rand()产生的随机数序列都是一样的~~
& & & & 所以为了避免上述情况的发生我们通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))来 产生种子。如果仍然觉得时间间隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某个合适的整数。 例如,srand((unsigned)time(NULL)*10)
& & & & 另外,关于time_t time(0):time_t被定义为长整型,它返回从日零时零分零秒到目前为止所经过的时间,单位为秒。
以上转自百度百科:
生成随机数函数rand用法,如代码所示:
#include &stdafx.h&
#include &time.h&
#include &stdlib.h&
int _tmain(int argc, _TCHAR* argv[])
// 初始化随机数种子
// time函数返回从日零时零分零秒到目前为止所经过的时间,单位为秒
srand((int)time(NULL));
for (int i = 0; i & 10; i++) {
j = (rand() * 10) / RAND_MAX + 1; // 生成1~10之间的随机数
printf(&j = %d \n&, j);
unsigned start = (rand() * 1000)/ RAND_MAX + 15550; // 生成之间的随机数
printf(&start = %d \n&, start);
start &= ~1; // 把start变为偶数,如果是奇数,则start变为start - 1的偶数
printf(&start = %d \n&, start);
getchar();
运行结果如下所示:
start = 16185
start = 16184
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1410090次
积分:15234
积分:15234
排名:第294名
原创:245篇
转载:83篇
评论:457条
文章:15篇
阅读:118133
(1)(3)(1)(1)(1)(1)(1)(1)(1)(1)(2)(1)(1)(2)(3)(2)(4)(2)(5)(3)(4)(8)(4)(2)(6)(9)(7)(8)(10)(8)(11)(15)(5)(7)(4)(1)(11)(2)(1)(1)(6)(5)(10)(14)(8)(13)(7)(10)(38)(24)(8)(4)(2)(4)(7)(1)(2)(3)(1)(1)输出4个随机数求纠正......
输出4个随机数 求纠正
用c语言设计猜数字 该段是输出4个不重复的个位随机数 自己写的如下 不能保证不重复 因为调试时总出现问题所以自己找不出原因了 求改错
#include&stdio.h&
#include&stdlib.h&
#include&time.h&
void main()
{
int a,b,c,d;
srand(time(NULL));
int score=rand();
a=score%10;
score=rand();
b=score%10;
printf(&1\n&);
while(a!=b)
score=rand();
b=score%10;
score=rand();
c=score%10;
if(c==a||c==b)
printf(&2\n&);
//while(!(c==a||c==b))
while(c!=a&&c!=b)
score=rand();
c=score%10;
score=rand();
d=score%10;
if(d==a||d==b||d==c)
printf(&3\n&);
//while(!(d==a||d==b||d==c))
while(d!=a&&d!=b&&d!=c)
score=rand();
d=score%10;
printf(&%d%d%d%d&,a,b,c,d);
修改后的Code,应该简洁一些。
#define MAX_NUMBER 4
int checkDouble(int *w, int num, int rData)
int i = 0;
for(i = 0; i < i++)
if(rData == w[i])
void main()
int data[MAX_NUMBER] = {0};
int randData = 0;
int i = 0;
srand(time(NULL));
data[0] = rand() % 10;
printf("%d",data[0]);
for(i = 1; i < MAX_NUMBER;)
randData = rand() % 10;
if(checkDouble(data,i,randData) == 1)
data[i] = rand.....
修改后的Code,应该简洁一些。
#define MAX_NUMBER 4
int checkDouble(int *w, int num, int rData)
int i = 0;
for(i = 0; i < i++)
if(rData == w[i])
void main()
int data[MAX_NUMBER] = {0};
int randData = 0;
int i = 0;
srand(time(NULL));
data[0] = rand() % 10;
printf("%d",data[0]);
for(i = 1; i < MAX_NUMBER;)
randData = rand() % 10;
if(checkDouble(data,i,randData) == 1)
data[i] = randD
printf(",%d",data[i]);
void main()
int a,b,c,d,
srand(time(NULL));
score=rand();
a=score%10;
score=rand();
b=score%10;
printf("1\n");
while(a==b)
//a,b相同则重新选b,
score=rand();
b=score%10;
score=rand();
c=score%10;
if(c==a||c==b)
printf("2\n");
while((c==a||c==b))
//c与a或b相同则重新选C
score=rand();
c=score%10;
score=rand();
d=score%10;
if(d==a||d==b||d==c)
printf("3\......
void main()
int a,b,c,d,
srand(time(NULL));
score=rand();
a=score%10;
score=rand();
b=score%10;
printf("1\n");
while(a==b)
//a,b相同则重新选b,
score=rand();
b=score%10;
score=rand();
c=score%10;
if(c==a||c==b)
printf("2\n");
while((c==a||c==b))
//c与a或b相同则重新选C
score=rand();
c=score%10;
score=rand();
d=score%10;
if(d==a||d==b||d==c)
printf("3\n");
while((d==a||d==b||d==c))
//c与a或b,c相同则重新
score=rand();
d=score%10;
printf("%3d%3d%3d%3d",a,b,c,d);//将数字分开,
PS:若开始出现1 2 3,说明系统相对应的出现二次选数,如1表示开始ab是相同的,通过二次选择b后才出现的。同理2表示c,3表示d
你的程序没有错误,只是你的算法有误,
随机数是有可能出现重复的,者很正常
因此你需要一个数组,可以保存四个元素,
连续多次调用随机数发生器获得随机数,只有在当前数组中没有的时候才将新生成的随机数加入,就可确保四个随机数不会重复了
大家都关注
举报原因(必选):
广告或垃圾信息
不雅词句或人身攻击
激进时政或意识形态话题
侵犯他人隐私
其它违法和不良信息JSP实现猜数字游戏_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
JSP实现猜数字游戏
J&#8203;S&#8203;P&#8203;实&#8203;现&#8203;简&#8203;单&#8203;的&#8203;猜&#8203;数&#8203;字&#8203;游&#8203;戏
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢}

我要回帖

更多关于 java随机数生成1到100 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信