您的位置:首页 > 其它

产生n位的随机数

2014-03-20 13:57 148 查看
随机生成一个n bit位的长整数。

函数签名如下

long createRndInteger(int n)

思路是先确定输入n位数的取值范围,然后用Math.pow()函数确定最小值,求最大值则是利用二进制和十进制的转换取得,最后利用java中的函数取得最终的值具体代码如下:
package com.wwz.c2;

import java.util.Random;
import java.util.Scanner;

public class Ctwo {

/**
* @author ZHANGweiwei
* 随机生成n bit位的整数
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
long value=createRndInteger(n);
System.out.println(value);

}
public static long createRndInteger(int n){
int min=(int)Math.pow(2, n-1);//生成二进制能表示的最小的值
int max=0;
for(int i=0;i<n;i++){
max+=Math.pow(2, i);

}
//随机生成min-max之间的数
Random random=new Random();
int num=random.nextInt(max-min+1)+min;
return num;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: