我想你可以先用洗牌程序打乱图片数组的顺序成为一个随机的顺序,然后依次将图片输出就好了。public void printpicture(){ int N;//图片的数目; int suffixpic = new suffixpic[N];//定义一个新的数组,数组中的元素的值就是将来要输出的图片的下标。 for(int i=0; i<N; i++)//初始化该数组 suffixpic[i] = i; //下面这段代码将采用洗牌算法,随机打乱数组ArrayPic中的元素。 Random r = new Random(); for(int i=0; i<N; i++){ int temp = r.nextInt(N); swap(suffixpic[i],suffixpic[temp]); //交换数组中的元素 } /////////////////// //好了,可以根据suffixpic数组输出图片了 for(int i=0; i<N; i++) printpic(arraypic[suffixpic[i]]); //根据数组suffixpic的值作为下标输出图片。}
我用的是J2ME里imageAll = new Image[9]; for (int i = 0; i < 9; i++) { try { imageAll[i] = Image.createImage("/2." + i + ".png"); } catch (IOException e) { e.printStackTrace(); } } 这样加载图片的啊
import java.util.*;public class PrintOut2 { public static void main(String[] args) { int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9}; int array2[] = new int[9]; Random f = new Random(); //构造一个新的随机数生成器 for (int i = 1; i <= 9; i++) { int a = f.nextInt(9); //返回一个0~9之间的随机数 for (int j = 0; j < i; j++) { if (array2[j] == array[a]) { break; }
int[] a2 = new int[9];//随机数组int max = 9;
int temp = 0;
Random random = new Random();
int rnd_num = 0;while (max >= 0)
{
rnd_num = random.nextInt(max);
a2[temp] = a1[rnd_num];
a1[rnd_num] = a1[m - 1];
temp++;
max--;
} 仿佛是这样
int N;//图片的数目;
int suffixpic = new suffixpic[N];//定义一个新的数组,数组中的元素的值就是将来要输出的图片的下标。
for(int i=0; i<N; i++)//初始化该数组
suffixpic[i] = i;
//下面这段代码将采用洗牌算法,随机打乱数组ArrayPic中的元素。
Random r = new Random();
for(int i=0; i<N; i++){
int temp = r.nextInt(N);
swap(suffixpic[i],suffixpic[temp]); //交换数组中的元素
}
///////////////////
//好了,可以根据suffixpic数组输出图片了
for(int i=0; i<N; i++)
printpic(arraypic[suffixpic[i]]); //根据数组suffixpic的值作为下标输出图片。}
for (int i = 0; i < 9; i++) {
try {
imageAll[i] = Image.createImage("/2." + i + ".png");
} catch (IOException e) {
e.printStackTrace();
}
}
这样加载图片的啊
public static void main(String[] args) {
int array[] = {
1, 2, 3, 4, 5, 6, 7, 8, 9};
int array2[] = new int[9];
Random f = new Random(); //构造一个新的随机数生成器
for (int i = 1; i <= 9; i++) {
int a = f.nextInt(9); //返回一个0~9之间的随机数
for (int j = 0; j < i; j++) {
if (array2[j] == array[a]) {
break;
}
array2[i] = array[a];
}
for(int t=0;t<9;t++)
System.out.println(array2[t]);
}
}
}
我是这样用随机数写的
也不知道对不对
你自己看看吧
好像有点问题!!!
但我也只有这点水平了
对不起拉!!
imageAll = new Image[9]; for (int i = 0; i < 9; i++) {
try {
imageAll[i] = Image.createImage("/2." + i + ".png");
} catch (IOException e) {
e.printStackTrace();
}
}
int suffixpic = new suffixpic[N];//定义一个新的数组,数组中的元素的值就是将来要输出的图片的下标。
for(int i=0; i<N; i++)//初始化该数组
suffixpic[i] = i;
//下面这段代码将采用洗牌算法,随机打乱数组suffixpic中的元素。
Random r = new Random();
for(int i=0; i<N; i++){
int temp = r.nextInt(N);
int element;
element = suffixpic[i];
suffixpic[i] = suffixpic[temp];
suffixpic[temp] = element;
}
///////////////////
//好了,可以根据suffixpic数组输出图片了
for(int i=0; i<N; i++)
printimage(imageAll[suffixpic[i]]); //根据数组suffixpic的值作为下标输出图片。}这个程序已经基本可以用拉,只要你自己有一个输出图片的接口函数printimage就可以了
能否+Q详聊一下
16050810
还可以根据你自己的需要,产生n个从a到b的不重复的随机数
比如你的是9个从0到8的咯哈
要的话我可以给你。
q170439862注明要那个类的
int[] b1 = new int[10];
for(int j=0; j<10; j++)//初始化该数组
b1[j] = -1;
int count=0 ;
Random a1 = new Random();
while(count<10)
{
i = a1.nextInt(10) ;
if(inedexOf(b1,i)==-1){
b1[count++] = i ;
}
}
public static int inedexOf(int[] b1,int a){
for(int i=0;i<10;i++)
{
if(b1[i]==a) return i ;
}
return -1;
}
其中b1就生成了0-9的随即排列,