❶ java 如何創建一個類或方法能夠給出產生指定位數的一個隨機數
//代碼如下:
publicstaticintgetNum(intsize)throwsException{
StringBuffersb=newStringBuffer();
if(size>1){
for(inti=0;i<size;i++){
while(i==0){
inttemp=(int)(Math.random()*10);
if(temp!=0){
sb.append(temp);
i++;
break;
}
}
sb.append((int)(Math.random()*10));
}
}elseif(size==1){
sb.append((int)(Math.random()*10));
}else{
thrownewException("輸入的位數不正確!");
}
returnInteger.parseInt(sb.toString());
}
❷ java中怎麼隨機生成3位整數.
public int getRandom() {
int number = 0;
while (true) {
number = (int) (Math.random() * 1000);
if (number >= 100 && number < 1000) {
break;
}
}
return number;
}
❸ java生成隨機三位數
public class Test2
{
public static void main(String [] srgs)
{
int i=(int)(Math.random()*900)+100;
//int i= new java.util.Random().nextInt(900)+100;也可以
System.out.println(i);
}
}
也就是要求100到999之間的隨機數,
Math.random()返回的是0到1之間的隨機數,返回類型為double型,大於等於0,小於1,
引用JDK1.6api
public static double random()返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0。返回值是一個偽隨機選擇的數,在該范圍內(近似)均勻分布。
Math.random()*900,就是0到900之間的數了,可以取到0,但是取不到900,但是這個乘積是double類型的,將它強制轉換成int類型,然後加上100,就變成了可以取到100,但是取不到1000.完畢
❹ 在JAVA里怎麼獲得9~11位的隨機數
獲取隨機數的方法,參數是需要獲取的隨機數的長度
/**
* 需要的長度
* @param length
*/
private static void getRadom(int length){
//獲取一個隨機數
double rand = Math.random();
//將隨機數轉換為字元串
String str = String.valueOf(rand).replace("0.", "");
//截取字元串
String newStr = str.substring(0, length);
System.out.println(newStr);
}
其實就是利用Math.random()方法生成一個隨機的double數,然後轉換為字元串,在字元串中去做操作
❺ java 隨機數固定位數
importjava.math.BigDecimal;
importjava.util.Random;
publicclassRandomDemo{
publicstaticvoidmain(String[]args){
Randomrd=newRandom();
doublexr=rd.nextDouble()*100;
BigDecimalb=newBigDecimal(xr);
//參數說明2代表保留2為小數BigDecimal.ROUND_HALF_UP四捨五入
doublex=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(x);
}
}
❻ 請問java生成任意位數的隨機數
是這樣的,java裡面是沒有這樣的直接的函數的,樓上的只是說輸出一個小於1的固定小數點的隨機數字,我想樓主的意思是說隨機生成隨意的整數吧,我可以隨機輸出1-10位(計算機不可能輸出沒有位限制的數字,它隨機生成的後面一般都是固定的位數,我用代碼實現了在1-10位隨機)的整數,如果你還要小數,就自己在代碼上加上一個隨機小數就ok啦,請看代碼:public class RandomTest
{
public static void main(String[] args)
{
double rd=Math.random();
int max=(int)(Math.random()*10);
System.out.println("此次生成的數字的位數為:"+max+"位");
for(int i=0;i<max;i++) {
rd=rd*10;
}
double result=rd-rd%1;
java.text.DecimalFormat df =new java.text.DecimalFormat("#");
String end=df.format(result);
System.out.println("結果是: "+end);
}
}
❼ JAVA 獲取一個四位隨機數(並且四位數不重復),並說明原理和演算法
import java.util.*;
public class Get4Number {
public static void main(String[] args) {
System.out.println(getNumber());
}
/** 得到一個0-9的隨機數 */
private static int getRandomNumber() {
return (int) ((Math.random() * 100) % 10);
}
/** 得到一個四位無重復數字的數 */
private static int getNumber() {
Set<Integer> set = new HashSet<Integer>();
while (true) {
int a = getRandomNumber();
set.add(new Integer(a));//Set裡面的元素是不重復的,如果重復是存不進去的。
if(set.size()>3)
break;
}
int index = (int) ((Math.random() * 100) % 4);
if(index==0){index+=1;}
Integer[] arr = new Integer[set.size()];
set.toArray(arr);
String s = "";
if(arr[0].intValue()==0){//如果第一位是0,則隨機和後面三位交換
Integer temp = arr[0];
arr[0] = arr[index];
arr[index] = temp;
}
for(int i=0;i<arr.length;i++){
s += arr[i].intValue();
}
return Integer.parseInt(s);
}
}
❽ Java如何得到一個18位的隨機數
既然你能接受18為的數,那你可以用Math.random()*1000000000000000000得到。
如果說Math.random()不能精確到18位的話,當然我懶得去看,你自己試試到底能精確幾位,比如只能精確到6位,那麼如果隨機數乘以1億,得到的是前六位是隨機的,你可以再做一個剩餘幾位的隨機數加到前面那個隨機數裡面進去,這樣得到的應該是個1億內的隨機數。
那你可以這么做,
Math.random*10000000000000000000+Math.random()*1000000000000+Math.random()*10000000;同理,其他任意位的數字可以得到。
❾ java 隨機生成一個六位數
publicclassGuessNum{
publicstaticvoidmain(String[]args){
inti=getRandomNum();
System.out.println("已生成隨機數!");
System.out.println(i);//方便測試列印出隨機數~~可刪除~~
while(true){
try{
System.out.print("請輸入一個6位正"+"整數:");
Readerreader=newInputStreamReader(System.in);
char[]b=newchar[6];
reader.read(b);
StringguessStr=newString(b).trim();
intguessInt=Integer.parseInt(guessStr);
if(guessInt==i){
System.out.println("恭喜猜對!");
break;
}
System.out.println("不對重猜!");
}catch(Exceptione){
System.out.println("輸入有誤!");
}
}
}
privatestaticintgetRandomNum(){
Randomr=newRandom();
returnr.nextInt(900000)+100000;
}
}
❿ java編碼中怎樣產生四位隨機數
用這個代碼:
java.util.Randomrandom=newjava.util.Random();
inta=random.nextInt(9000)+1000;//生成從0-指定數(不包括指定數)的整數
從1000-9999;可以看成從0+1000——8999+1000