算法
写个算法从1-10个数中,随机抽取五个数,这5个数前后不能重复,并求出时间复杂度。
要用单纯的算法,不能借助数据结构。
我记得上学的时候学过概率,遇到过这样的问题,现在似乎有点望了。编程题
请编写一个数据结构,足够长的长整型,可以存储足够大的Long型的int
写个算法从1-10个数中,随机抽取五个数,这5个数前后不能重复,并求出时间复杂度。
要用单纯的算法,不能借助数据结构。
我记得上学的时候学过概率,遇到过这样的问题,现在似乎有点望了。编程题
请编写一个数据结构,足够长的长整型,可以存储足够大的Long型的int
比如123,可以存储为 int[] a = {1,2,3};
123 + 456
int[] a = {1,2,3};
int[] b = {4,5,6};
int[] c = add(a, b) = {5,7,9};
就是将你要存储的长数切成可以存储的短数,只要短数之间保证联系能够恢复到长数就可以了
String result = "" + String.valueOf(num) + ",";
String temp = "";
boolean boo = true;
int count = 1;
while (boo){
temp = result;
boolean flag = true;
boolean isExist = false;
num = (int)(Math.random()*10+1);
System.out.println("生成的随机数为:" + num);
int b = 0;
String str = "";
while(flag){
if(temp.indexOf(",") != -1){
b = temp.indexOf(",");
str = temp.substring(0 ,b); if(!str.equals(String.valueOf(num))){
temp = temp.substring(b + 1,temp.length());
}else{
isExist = true;
break;
}
}else{
flag = false;
}
}
if(!isExist){
result = result + String.valueOf(num) + ",";
count++;
}
//如果够5个数了,则退出
if(count == 5){
break;
}
}
System.out.println("生成的5个不重复的随机数串是:" + result);