`

生成1千万不重复的数字

阅读更多

package com.myway.study;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;

/**
 * 
 * 生成1千万不重复的数字
 * User: zhangyong
 * Date: 14-5-2
 * Time: 下午11:02
 * To change this template use File | Settings | File Templates.
 */
public class TenMillionNotCurrentNumber {

    public static void main(String[] args) {
        int max = 10000000;
        Random random = new Random();
        int[] arr = new int[max];
        System.out.println(arr.length);
        String storePath = "D:\\1.txt";
        //设置初始值
        for (int i = 0; i < arr.length; i++) {
            arr[i] = i + 1;
        }
        //调用随机来调换位置
        for (int n = 0; n < max; n++) {
            int ii = (int) random.nextInt(max);
            if (ii == max) {
                ii = ii - 1;
            }
            int jj = (int) random.nextInt(max);
            if (jj == max) {
                jj = jj - 1;
            }
            //调换位置
            swap(arr, ii, jj);
        }
        for (int i = 0; i < arr.length; i++) {
            try {
                String data = (i == arr.length - 1) ? String.valueOf(arr[i]) : (String.valueOf(arr[i]) + ',');
                FileUtils.writeStringToFile(new File(storePath), data, true);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void swap(int[] arr, int ii, int jj) {
        int temp = arr[ii];
        arr[ii] = arr[jj];
        arr[jj] = temp;
    }


}

分享到:
评论

相关推荐

    利用时间生成8位不重复数

    在IT开发领域,生成不重复的编号或标识符是一个常见的需求,特别是在数据库记录、订单号、唯一用户ID等场景。为了满足这一需求,开发者经常利用系统时间作为基础,结合其他算法来生成这样的唯一序列。标题提到的...

    生成指定随机数不重复的例子(可用)

    要生成不重复的随机数,我们需要配合使用集合,如`ArrayList`或`HashSet`。 以下是一个基本的实现思路: 1. 创建一个包含所有可能随机数的集合,例如从1到n的整数。 2. 创建一个空集合用于存储生成的不重复随机数...

    C#生成不重复字母数字组合的随机数

    在C#编程中,生成不重复的字母数字组合是一个常见的需求,这可能涉及到密码生成、唯一标识符创建或数据加密等多个领域。在这种情况下,我们通常会利用C#的内置类和方法来实现这一功能。标题提到的是“C#生成不重复...

    java生成十个不重复的随机数

    但要生成不重复的随机数,我们不能简单地连续调用`nextInt()`,因为这可能导致重复。一种有效的方法是使用`HashSet`,因为它不允许存储重复元素。 以下是一个简单的示例代码,展示了如何生成十个不重复的随机数: ...

    VB生成不重复的随机数

    根据提供的标题、描述以及部分代码内容,我们可以总结出在Visual Basic (简称VB)环境中生成不重复随机数的主要方法。此技术常用于各种场景,比如彩票系统、抽奖程序或需要无重复随机选择的应用。 ### 一、基本原理 ...

    VB.NET生成1-10不重复随机数

    在VB.NET编程环境中,生成1-10之间不重复的随机数是一项常见的需求,这可能在各种场景下用到,比如模拟抽奖、游戏设计或数据分析等。为了实现这个功能,我们需要掌握VB.NET中的随机数生成器类以及数组或集合数据结构...

    C#生成2位或N位不重复字母数字组合

    在C#编程中,生成不重复的字母数字组合是一项常见的任务,特别是在密码生成、验证码创建或者唯一标识符的生产场景中。本篇文章将详细讲解如何使用C#来生成指定长度的不重复字母数字组合,包括两位及任意N位的情况。 ...

    js超简单实用随机产生1-100个数字不重复

    然而,要生成不重复的随机数,我们需要一个更复杂的方法。一种常见的策略是使用一个数组来存储已生成的随机数,然后在数组未满时从中选择新的随机数。以下是一个简单的实现示例: ```javascript function ...

    自动生成不重复无序化id

    这是自动生成不重复主键的代码包,直接导包进入程序即可使用,帮助生成由字母数字组成的16位id号,可以用于数据库主键存储(使用数据库自增主键始终有问题,不适合大型程序的使用),该代码包运用于很多大型企业级...

    20位不重复id生成器

    生成20位不重复id,生成6位验证码,生成uuid等等帮助方法

    VB.NET生成不重复的随机数

    在VB.NET编程环境中,生成不重复的随机数是一项常见的需求,尤其在进行模拟、测试或者游戏开发时。这里我们将深入探讨如何实现这个功能,并提供一个详细的步骤解释。 首先,我们需要了解VB.NET中的Random类,它是...

    C#生成20000个不重复数据的工具

    在C#编程中,生成大量不重复的随机数是一项常见的任务,特别是在进行数据测试、模拟或游戏开发等场景。本文将深入探讨如何使用C#语言高效地生成20000个不重复的随机数,并将这些数值打印到控制台。 首先,我们需要...

    易语言取不重复随机数

    在易语言中,生成不重复随机数是一项常见的需求,特别是在游戏开发、数据分析或者算法设计等场景。本文将深入探讨如何在易语言中实现取不重复随机数的功能。 首先,我们需要了解易语言中的随机数生成函数。在易语言...

    随机生成不重复字段-自定义各个字段长度(陈表达原创).xlsm

    随机生成不重复字段-自定义各个字段长度,批量随机生成多个不重复多段字符串(每个段可自定义长度) 批量随机生成多个不重复多段字符串(每个段可自定义长度) 哪个字段有输入长度,即为生成多少段字符 1、生成10组...

    生成不重复随机数的算法

    在许多应用领域中,比如在线考试系统、游戏开发或是数据处理等场景,生成不重复的随机数是一项非常重要的技术。本文将详细介绍几种不同的方法来实现这一功能,并通过具体的Java代码示例来进行说明。 #### 方法一:...

    java开发技术调用rendom函数,随机生成32位不重复的字符

    "Java开发技术调用Random函数,随机生成32位不重复的字符" 在Java开发技术中,生成随机数是非常常见的需求。例如,在注册用户账户时,需要生成一个随机的密码。在游戏开发中,需要生成随机数来决定游戏的结果。在...

    易语言组合6位不重复数字源码

    对于生成不重复数字组合,我们可以从最小的数字0开始,逐位填充到6位数中,每填一位都检查是否与已填数字重复,如果重复则回溯到上一位,尝试下一个数字。这个过程会递归地进行,直到生成所有可能的组合。 其次,...

    随机产生8位无重复数

    2. **去除重复**:为了确保生成的随机数不重复,可以使用HashSet或数据库来存储已经生成过的随机数,每次生成新数时,都会先检查该数是否已存在,如果不存在则添加并返回,否则继续生成新的随机数。 3. **数据库...

Global site tag (gtag.js) - Google Analytics