Random random = new Random(); for (int i=intTest.lenth;i>0,i--){ int j=intTest[random.nextInt(i)] System.out.println(j); //TODO 移除当前数组元素 }至于移除数组元素的方法,有几种。这是我想的两种…… //第一种 List list = new ArrayList(Arrays.asList(intTest)); list.remove(i); intTest=list.toArray(); //第二种 逐个传给一个新的数组
//TODO 移除当前数组元素移除了还重复?
Random random = new Random(); for (int i=intTest.lenth;i>0,i--){ int j=intTest[random.nextInt(i)] System.out.println(j); List list = new ArrayList(Arrays.asList(intTest)); list.remove(i); intTest=list.toArray(); }把他写全了给你八
int[] intTest = {1,2,3,4,5}; int N=5,temp; java.util.Random ran = new java.util.Random(); for(int i=0;i<100;i++) { int j=ran.nextInt(N); temp=intTest[j]; intTest[j]=intTest[N-j-1]; intTest[N-j-1]=temp; } System.out.print("("+intTest[0]); for(int i=1;i<N;i++) { System.out.print(" , "+intTest[i]); } System.out.println(")");
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random;public class Main { public static void main(String[] args) { Object[] intTest = { 1, 2, 3, 4, 5 }; Random random = new Random(); for (int i = intTest.length; i > 0; i--) { int k=random.nextInt(i); Object j = intTest[k]; System.out.println(j); List list = new ArrayList(Arrays.asList(intTest)); list.remove(k); intTest = list.toArray(); } }}
Object[] intTest = { "1", "2", "3", "4", "5" }; List list = new ArrayList(); for (int i = 0; i < intTest.length; i++) { list.add(i, intTest[i]); } for (int i = 0; i < intTest.length; i++) { double random = Math.random(); int temp = (int) (random * (intTest.length - i)); //System.out.println("tintTest.length-i=" + (intTest.length - i) // + "\ttemp=" + temp); System.out.println(list.get(temp)); list.remove(temp); } }
Object[] intTest = { "1", "2", "3", "4", "5" }; List list = new ArrayList(); for (int i = 0; i < intTest.length; i++) { list.add(i, intTest[i]); } for (int i = 0; i < intTest.length; i++) { double random = Math.random(); int temp = (int) (random * (intTest.length - i));
import java.util.Random;public class test2 { public static void main(String args[]) { RandomTest(); }
// 数组自由排列 public static void RandomTest(){ Random ran = new Random(); int a[] = { 1, 2, 3, 4, 5 ,6,7,8,9}; int b[] = new int[a.length]; int w = a.length; int x = 0; int y;
for (int i = 0; i < a.length; i++) { y = 0; x = Math.abs(ran.nextInt()) % w; // 把随机选中的数,提出来,然后省下数重新排列数组 for (int j = 0; j < w; j++) { if (x == j) { b[i] = a[x]; continue; } a[y] = a[j]; y++; } w--; System.out.print("~" + b[i] + "~"); } } }
import java.util.*; public class TestRandom { static Random ran = new Random(); static int[] intTest = {1,2,3,4,5}; public static int[] createRandom(int n){ int[] result = new int[n]; boolean[] picked = new boolean[n]; for(int i = 0;i<n;i++){ int t; do { t = ran.nextInt(n); } while (picked[t]); result[i] = intTest[t]; picked[t] = true; } return result; } public static void main(String[] args){ int[] a = createRandom(intTest.length); System.out.println(Arrays.toString(a)); } } 试试这个
>>treeroot(旗鲁特) 高手呀 我也写了一个^-^public class TestRan{ public static void main(String[] args) {
int[] intTest = {1, 2, 3, 4, 5};
List list = new ArrayList();
for(int i = 0; i < intTest.length; i ++){ list.add(Integer.valueOf(intTest[i])); }
Collections.shuffle(list);
for(int i = 0; i < list.size(); i ++){ System.out.println("the " + i + " element is :" + list.get(i)); }
} }
int array[]={ 2,5,2,6,9}; Random random = new Random(); for( int i=0; i<array.length; i++){ int index = random.nextInt(i+1); int temp = array[i]; array[i] = array[index]; array[index]= temp; } for(int i=0; i<array.length; i++){ System.out.print(array[i]); }
public static int[] test(int[] arr) {
int[] arr1 = new int[arr.length]; boolean[] SSSwitch = new boolean[arr.length]; Random rand = new Random();
for(int i = 0; i < arr.length; ++i) {
int j;
do j = rand.nextInt(arr.length); while(SSSwitch[j]);
arr1[i] = arr[j]; SSSwitch[j] = true; }
return arr1; }楼主试下这个。
原来看thinking in java的时候里边的一个算法。 本来想想个原创出来的,可是次方法在我脑中挥之不去,哎~~
呵呵~学到东西了~ class Jie { public static void main(String args[]){ int a[] = {1,2,3,4,5}; final int A=5; Random r = new Random();
for (int i=0;i<10 ;i++ ) { int j=r.nextInt(A); int k=r.nextInt(A); int x= a[j]; a[j]=a[k]; a[k]=x; } for( int i=0;i<a.length;i++) System.out.print( a[i]+" "); } }
import java.util.*; public class a { public static void main(String args[]){ int data[]={1,2,3,4,5}; ArrayList ar=new ArrayList(); for(int i=0;i<data.length;i++){ ar.add(data[i]); } Collections.shuffle(ar,new Random()); System.out.println(ar); } }
for (int i=intTest.lenth;i>0,i--){
int j=intTest[random.nextInt(i)]
System.out.println(j);
//TODO 移除当前数组元素
}至于移除数组元素的方法,有几种。这是我想的两种……
//第一种
List list = new ArrayList(Arrays.asList(intTest));
list.remove(i);
intTest=list.toArray(); //第二种
逐个传给一个新的数组
for (int i=intTest.lenth;i>0,i--){
int j=intTest[random.nextInt(i)]
System.out.println(j);
List list = new ArrayList(Arrays.asList(intTest));
list.remove(i);
intTest=list.toArray();
}把他写全了给你八
这一步是有问题,我也只是写出来,并没有调试。
但是原理是这样给出来了,就差的是调试了。
int N=5,temp;
java.util.Random ran = new java.util.Random();
for(int i=0;i<100;i++)
{
int j=ran.nextInt(N);
temp=intTest[j];
intTest[j]=intTest[N-j-1];
intTest[N-j-1]=temp;
} System.out.print("("+intTest[0]);
for(int i=1;i<N;i++)
{
System.out.print(" , "+intTest[i]);
}
System.out.println(")");
import java.util.Arrays;
import java.util.List;
import java.util.Random;public class Main { public static void main(String[] args) {
Object[] intTest = { 1, 2, 3, 4, 5 };
Random random = new Random();
for (int i = intTest.length; i > 0; i--) {
int k=random.nextInt(i);
Object j = intTest[k];
System.out.println(j);
List list = new ArrayList(Arrays.asList(intTest));
list.remove(k);
intTest = list.toArray();
}
}}
List list = new ArrayList();
for (int i = 0; i < intTest.length; i++) {
list.add(i, intTest[i]);
} for (int i = 0; i < intTest.length; i++) {
double random = Math.random();
int temp = (int) (random * (intTest.length - i));
//System.out.println("tintTest.length-i=" + (intTest.length - i)
// + "\ttemp=" + temp); System.out.println(list.get(temp));
list.remove(temp); }
}
List list = new ArrayList();
for (int i = 0; i < intTest.length; i++) {
list.add(i, intTest[i]);
} for (int i = 0; i < intTest.length; i++) {
double random = Math.random();
int temp = (int) (random * (intTest.length - i));
System.out.println(list.get(temp));
list.remove(temp); }
}
public static void main(String args[]) {
RandomTest();
}
// 数组自由排列
public static void RandomTest(){
Random ran = new Random();
int a[] = { 1, 2, 3, 4, 5 ,6,7,8,9};
int b[] = new int[a.length];
int w = a.length;
int x = 0;
int y;
for (int i = 0; i < a.length; i++) {
y = 0;
x = Math.abs(ran.nextInt()) % w;
// 把随机选中的数,提出来,然后省下数重新排列数组
for (int j = 0; j < w; j++) {
if (x == j) {
b[i] = a[x];
continue;
}
a[y] = a[j];
y++;
}
w--;
System.out.print("~" + b[i] + "~");
}
}
}
public class TestRandom
{
static Random ran = new Random();
static int[] intTest = {1,2,3,4,5};
public static int[] createRandom(int n){
int[] result = new int[n];
boolean[] picked = new boolean[n];
for(int i = 0;i<n;i++){
int t;
do
{
t = ran.nextInt(n);
}
while (picked[t]);
result[i] = intTest[t];
picked[t] = true;
}
return result;
}
public static void main(String[] args){
int[] a = createRandom(intTest.length);
System.out.println(Arrays.toString(a));
}
}
试试这个
List<Integer> list=new ArrayList<Integer>();
for(Integer a:intTest)
list.add(a);
Collections.shuffle(list);
Integer[] ret=list.toArray(new Integer[0]);
System.out.println(list);
List<Integer> list=new ArrayList<Integer>();
for(Integer a:intTest)
list.add(a);
Collections.shuffle(list);
Integer[] ret=list.toArray(new Integer[0]);
System.out.println(list);
---------------------------------
高手啊
我也写了一个^-^public class TestRan{ public static void main(String[] args) {
int[] intTest = {1, 2, 3, 4, 5};
List list = new ArrayList();
for(int i = 0; i < intTest.length; i ++){
list.add(Integer.valueOf(intTest[i]));
}
Collections.shuffle(list);
for(int i = 0; i < list.size(); i ++){
System.out.println("the " + i + " element is :" + list.get(i));
}
}
}
Random random = new Random();
for( int i=0; i<array.length; i++){
int index = random.nextInt(i+1);
int temp = array[i];
array[i] = array[index];
array[index]= temp;
}
for(int i=0; i<array.length; i++){
System.out.print(array[i]);
}
int[] arr1 = new int[arr.length];
boolean[] SSSwitch = new boolean[arr.length];
Random rand = new Random();
for(int i = 0; i < arr.length; ++i) {
int j;
do
j = rand.nextInt(arr.length);
while(SSSwitch[j]);
arr1[i] = arr[j];
SSSwitch[j] = true;
}
return arr1;
}楼主试下这个。
本来想想个原创出来的,可是次方法在我脑中挥之不去,哎~~
class Jie
{
public static void main(String args[]){
int a[] = {1,2,3,4,5};
final int A=5;
Random r = new Random();
for (int i=0;i<10 ;i++ )
{
int j=r.nextInt(A);
int k=r.nextInt(A);
int x= a[j];
a[j]=a[k];
a[k]=x;
}
for( int i=0;i<a.length;i++)
System.out.print( a[i]+" ");
}
}
public class a {
public static void main(String args[]){
int data[]={1,2,3,4,5};
ArrayList ar=new ArrayList();
for(int i=0;i<data.length;i++){
ar.add(data[i]);
}
Collections.shuffle(ar,new Random());
System.out.println(ar);
}
}
import java.util.*;
import java.lang.Math;
public class RadomArray {
public static int[] test(int[] arr)
{
int LAN=arr.length;
int n=0,i=0;
int[] arr1=new int[LAN];
boolean[] flag=new boolean[LAN];
for(i=0;i<LAN;i++){
flag[i]=false;
}
for(i=0;i<LAN;i++)
{
int j=(int)(Math.random()*LAN);
if(flag[j]==false)
{
arr1[i]=arr[j];//随机抽取一个arr元素给arr1
flag[j]=true;
++n;
}
else if(n==LAN)break;
else i--;
}
return arr1;
}
public static void main(String[] args) {
int i=0;
String[] arraywant={
"杨1","杨2","杨3","杨4","杨5","杨6","杨7","杨8","杨9","杨10",
"杨11","杨12","杨13","杨14","杨15","杨16","杨17","杨18","杨19","杨20",
"杨21","杨22","杨23","杨24","杨25","杨26","杨27","杨28","杨29","杨30",
"杨31","杨32","杨33","杨34","杨35","杨36","杨37","杨38","杨39","杨40",
"杨41","杨42","杨43","杨44","杨45","杨46","杨47","杨48","杨49","杨50",
"杨51","杨52","杨53","杨54","杨55","杨56","杨57","杨58","杨59","杨60",
};
int LEN=arraywant.length;
int[] array1=new int[LEN]; //array1是个排序好的数组
for(i=0;i<LEN;i++)
{
array1[i]=i;
}
int[] array2=RadomArray.test(array1); //调用打乱的方法,产生一个打乱的数组
for(i=0;i<LEN;i++)
{
int n=array2[i];
System.out.println("第"+(i+1)+"位是:"+arraywant[n]);
}
}
}