草庐IT

随机整数

全部标签

java - 非常快速的均匀分布随机数生成器

作为蒙特卡罗模拟的一部分,我必须掷一组骰子,直到某些值出现一定次数。我执行此操作的代码调用了一个骰子类,该类生成1到6之间的随机数,并返回它。最初代码看起来像publicvoidroll(){value=(int)(Math.random()*6)+1;}而且速度不是很快。通过交换Math.random()为ThreadLocalRandom.current().nextInt(1,7);它用原来大约60%的时间运行了一个部分,调用了大约2.5亿次。作为完整模拟的一部分,它至少会调用此方法数十亿次,那么有没有更快的方法来做到这一点? 最佳答案

Java - 获取一个从100到999的随机数

这个问题在这里已经有了答案:HowdoIgeneraterandomintegerswithinaspecificrangeinJava?(72个回答)关闭7年前。请告诉我以下行是否正确。intx=((int)(Math.random()*100000))%1000;这条线总是给我一个3位数100到999?有没有更简单的输入方法?我是否将这段代码复杂化了?

java - 带整数的 if 语句

这个问题在这里已经有了答案:Whydoesmyifconditionnotacceptanintegerinjava?(7个答案)关闭3年前。我是Java的新手。我正在寻找家庭作业方面的帮助。我不会发布我最初做的完整代码,但我认为它不会帮助我学习它。我有一个使用类的程序。我有一个将验证选择的类和一个包含我的setter和getter的类以及一个教授用程序的IO编码的类(这是一个地址簿)我在我的main中有这样的声明//createnewscannerScannerip=newScanner(System.in);System.out.println();intmenuNumber=Va

java - token ";"上的语法错误,{ 应在随机字符串创建者中的此 token 之后

我正在编写代码,使用字母a、b和c生成一个随机的3个字母的字符串。在我创建随机变量(Randomrand=newRandom();)的那一行之后,我收到错误消息“token语法错误”,{预期在此token之后“。我不知道为什么在我看起来不错的时候会收到此错误。我还收到错误消息:语法错误,在程序的最后一个括号之后插入“}”以完成ClassBody。我几乎肯定我所有的右括号都匹配,所以我不知道这个错误是从哪里来的。请帮忙!!importjava.util.*;publicclassOrders{Stringalphabet="abc";ArrayListlist=newArrayList(

java - 通过递归查找数组中最大的正整数

我决定递归地实现一个非常简单的程序,看看Java如何处理递归*,结果有点短。这就是我最后写的:publicclasslargestInIntArray{publicstaticvoidmain(String[]args){//Thesethreelinesjustsetupanarrayofints:int[]ints=newint[100];java.util.Randomr=newjava.util.Random();for(inti=0;ilargest)largest=i;returnlargest;}privatestaticintrecursive(int[]ints,in

Java - 如何将由空格分隔的整数读入数组

我的项目遇到了问题,因为我无法正确地开始,即从用户那里读取一行由空格分隔的整数并将这些值放入数组中。System.out.println("Entertheelementsseparatedbyspaces:");Stringinput=sc.next();StringTokenizerstrToken=newStringTokenizer(input);intcount=strToken.countTokens();//ReadsinthenumberstothearraySystem.out.println("Count:"+count);int[]arr=newint[count

java - 如何在java中读取逗号分隔的整数输入

importjava.io.*;importjava.util.*;classusingDelimiters{publicstaticvoidmain(Stringargs[]){Scannerdis=newScanner(System.in);inta,b,c;a=dis.nextInt();b=dis.nextInt();c=dis.nextInt();System.out.println("a="+a);System.out.println("b="+b);System.out.println("c="+c);}}当我输入123(以空格分隔)时,此程序运行良好但是,当我输入1,2

java - Java中的整数除法

我需要在Java中执行整数除法,结果应该是一个float。我可以只使用/符号吗?如:intinteger1=1;intinteger2=2;floatquotient=integer1/integer2;//CouldIdothis? 最佳答案 将其中一个整数转换为float以确保浮点除法:floatresult=integer1/(float)integer2 关于java-Java中的整数除法,我们在StackOverflow上找到一个类似的问题: htt

java - 在Java中生成一组唯一的随机数

我想在0-500范围内创建10个随机数。但问题是我希望这些数字是唯一的。对于2个随机数,我可以创建如下内容:intrandomItem1=r.nextInt(500);intrandomItem2=r.nextInt(500);while(randomItem1==randomItem2){randomItem1=randomItem();randomItem2=randomItem();}但如果我这样做10次,我认为while它会叠加。我这么说是因为我正在尝试创建一个巨大的算法,该算法试图进行连续评估,并且我想连续取10个随机且唯一的数字。我不知道该怎么办。有什么想法或建议吗?

java - 使用64位jdk时的整数范围

据我了解,32位和64位的两个整数之间的区别如下:32位范围-2,147,483,648到2,147,483,64764位范围:-9,223,372,036,854,775,808到+9,223,372,036,854,775,807我使用的是64位jdk,我通过打印以下内容来验证它:System.out.println("JVM位大小:"+System.getProperty("sun.arch.data.model"));JVMBitsize:64当我尝试初始化一个数字大于10个字母的新整数变量时,出现编译错误。这是为什么?看起来64位更大示例(在netbeans上运行):整数x=