请教各位前辈,如何产生7位或者N位不同的随机数啊?举个例子吧,呵呵,不太好解释比如说:随机数1: 2345678 随机数2:1234567 这样就算是合格的随机数 随机数3: 3456789 随机数4:3234567 这样就不算是合格的随机数,因为首位的3相同就是说生成的随机数各个位上的数字也不可以相同csdn牛人多,各位前辈指点小小弟 谢谢:)
调试欢乐多
{
static String s ;
public static void main(String args[]){
int[] num = new int[7];
for(int i = 0;i<num.length;i++){
num[i] = (int)(Math.random()*10);
if(i == 0)s =String.valueOf(num[i]);
else s += String.valueOf(num[i]);
//int t = Integer.parseInt(s);
}
int t = Integer.parseInt(s);
System.out.println(t);
}
}
随便获得几位的数字 如果太长的话就不能用int型了
可以改数组的长度 来确定获得几位的数字
public static void main(String[] a){
String i[] = {"1","2","3","4","5","6","7","8","9","0"};
List<String> l = new ArrayList<String>();
l.addAll(Arrays.asList(i));
Random ran = new Random();
String s = "";
while (l.size() > 10 - NUM_LENGTH)
s += l.remove(ran.nextInt(l.size()));
s = s.replaceAll("^(0)(\\d)", "$2$1");
System.out.print(s);
}
public static void main(String[] a){
String i[] = {"1","2","3","4","5","6","7","8","9","0"};
List<String> l = new ArrayList<String>();
l.addAll(Arrays.asList(i));
Random ran = new Random();
String s = "";
while (l.size() > 10 - NUM_LENGTH)
s += l.remove(ran.nextInt(l.size()));
s = s.replaceAll("^(0)(\\d)", "$2$1");
System.out.print(s);
}
发错了,你的情况NUM_LENGTH = 7
int[] arr = new int[7];
int[] nums = new int[10];
Random r = new Random();
for (int i = 0; i < 10; i++)
nums[i] = i;
for (int i = 0; i < 7; i++) {
int j = 0;
while ((nums[j = r.nextInt(10)]) == 0)
;
arr[i] = nums[j];
nums[j] = 0;
}
System.out.println(Arrays.toString(arr));
}
static int N=8;//位数
public static void main(String...x)
{
Set<String> set=new LinkedHashSet<String>();
while(set.size()<N)
{
set.add(""+(int)(Math.random()*10));
}
String num="";//转换串
for(String i:set)
{
num+=i;
}
long number=Long.parseLong(num);
System.out.println(number);
}
{
static String s1 ;
static String s2;
int[] num1 = new int[arrayLong];
int[] num2 = new int[arrayLong];
public static int arrayLong = 7;
public static void main(String args[]){
new TestDemo12().chooseNum();
int t1 = Integer.parseInt(s1);
int t2 = Integer.parseInt(s2);
System.out.println(t1);
System.out.println(t2);
}
public void chooseNum(){
for(int i = 0;i<num1.length;i++){
num1[i] = (int)(Math.random()*10);
num2[i] = (int)(Math.random()*10);
if(i == 0)
{
s1 =String.valueOf(num1[i]);
s2 = String.valueOf(num2[i]);
}
else
{
s1 += String.valueOf(num1[i]);
s2 += String.valueOf(num2[i]);
}
}
judageNum();
}
public void judageNum(){
if((num1[0] == num2[0])||(num1[arrayLong-1] == num2[arrayLong-1])) {
chooseNum();
}
}
}
比较长 不过很好理解 高手可以简化一下
这次输出来的是两个数 且首位和末位都不相同