Rss & SiteMap

课外天地 李树青 http://www.njcie.com

李树青 论坛 南京 财经 课外天地
共1 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:作业之一:生成指定范围的随机数

1楼
admin 发表于:2008/10/24 21:45:15

public class Exec {
        public static void main(String[] args) {
                // 定义数组维度的大小
                final int number = 4;

                // 利用RandomArray类生成具有不重复随机数的数组
                RandomArray ra = new RandomArray(number);

                // 循环显示数组元素
                for (int i = 0; i < number; i++) {
                        for (int j = 0; j < number; j++) {
                                System.out.print(ra.getArray()[i][j] + "\t");
                        }
                        System.out.println();
                }
        }

}

// 该类生成具有不重复随机数的数组
class RandomArray {
        // 保存随机数的数组
        private int[][] array;

        // 设置数组的维度大小
        private int size;

        // 数组的读取函数
        public int[][] getArray() {
                return array;
        }

        // 该构造函数对数组维度大小进行初始化,并生成随机数组
        public RandomArray(int size) {
                setSize(size);
                array = new int[size][size];
                generateRandomArray();
        }

        // 数组维度大小的设置函数
        public void setSize(int size) {
                this.size = size;
        }

        // 生成具有不重复随机数的数组
        public void generateRandomArray() {
                // 临时随机数变量
                int randomNumber;
                
                // 判断是否重复的标记变量
                boolean isRepeated;

                // 循环所有的数组元素
                for (int x = 0; x < size; x++)
                        for (int y = 0; y < size; y++) {
                                // 生成1到size*size间的一个随机整数
                                randomNumber = (int) (Math.random() * size * size) + 1;

                                // 检查该随机数是否重复
                                isRepeated = false;
                                for (int i = 0; i < size; i++) {
                                        for (int j = 0; j < size; j++) {
                                                if (randomNumber == array[i][j]) {
                                                        isRepeated = true;
                                                        break;
                                                }
                                        }
                                }

                                // 如果没有重复,则给相应的数组元素赋值,否则重置当前数组元素下标,留待下次循环再次设置随机数
                                if (!isRepeated) {
                                        array[x][y] = randomNumber;
                                } else {
                                        y--;
                                }
                        }
        }

}

[此贴子已经被作者于2010-12-12 08:27:35编辑过]
共1 条记录, 每页显示 10 条, 页签: [1]

Copyright ©2002 - 2016 课外天地.Net
Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.