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;
}
}
分享到:
相关推荐
在IT开发领域,生成不重复的编号或标识符是一个常见的需求,特别是在数据库记录、订单号、唯一用户ID等场景。为了满足这一需求,开发者经常利用系统时间作为基础,结合其他算法来生成这样的唯一序列。标题提到的...
要生成不重复的随机数,我们需要配合使用集合,如`ArrayList`或`HashSet`。 以下是一个基本的实现思路: 1. 创建一个包含所有可能随机数的集合,例如从1到n的整数。 2. 创建一个空集合用于存储生成的不重复随机数...
在C#编程中,生成不重复的字母数字组合是一个常见的需求,这可能涉及到密码生成、唯一标识符创建或数据加密等多个领域。在这种情况下,我们通常会利用C#的内置类和方法来实现这一功能。标题提到的是“C#生成不重复...
但要生成不重复的随机数,我们不能简单地连续调用`nextInt()`,因为这可能导致重复。一种有效的方法是使用`HashSet`,因为它不允许存储重复元素。 以下是一个简单的示例代码,展示了如何生成十个不重复的随机数: ...
根据提供的标题、描述以及部分代码内容,我们可以总结出在Visual Basic (简称VB)环境中生成不重复随机数的主要方法。此技术常用于各种场景,比如彩票系统、抽奖程序或需要无重复随机选择的应用。 ### 一、基本原理 ...
在VB.NET编程环境中,生成1-10之间不重复的随机数是一项常见的需求,这可能在各种场景下用到,比如模拟抽奖、游戏设计或数据分析等。为了实现这个功能,我们需要掌握VB.NET中的随机数生成器类以及数组或集合数据结构...
在C#编程中,生成不重复的字母数字组合是一项常见的任务,特别是在密码生成、验证码创建或者唯一标识符的生产场景中。本篇文章将详细讲解如何使用C#来生成指定长度的不重复字母数字组合,包括两位及任意N位的情况。 ...
然而,要生成不重复的随机数,我们需要一个更复杂的方法。一种常见的策略是使用一个数组来存储已生成的随机数,然后在数组未满时从中选择新的随机数。以下是一个简单的实现示例: ```javascript function ...
这是自动生成不重复主键的代码包,直接导包进入程序即可使用,帮助生成由字母数字组成的16位id号,可以用于数据库主键存储(使用数据库自增主键始终有问题,不适合大型程序的使用),该代码包运用于很多大型企业级...
生成20位不重复id,生成6位验证码,生成uuid等等帮助方法
在VB.NET编程环境中,生成不重复的随机数是一项常见的需求,尤其在进行模拟、测试或者游戏开发时。这里我们将深入探讨如何实现这个功能,并提供一个详细的步骤解释。 首先,我们需要了解VB.NET中的Random类,它是...
在C#编程中,生成大量不重复的随机数是一项常见的任务,特别是在进行数据测试、模拟或游戏开发等场景。本文将深入探讨如何使用C#语言高效地生成20000个不重复的随机数,并将这些数值打印到控制台。 首先,我们需要...
在易语言中,生成不重复随机数是一项常见的需求,特别是在游戏开发、数据分析或者算法设计等场景。本文将深入探讨如何在易语言中实现取不重复随机数的功能。 首先,我们需要了解易语言中的随机数生成函数。在易语言...
随机生成不重复字段-自定义各个字段长度,批量随机生成多个不重复多段字符串(每个段可自定义长度) 批量随机生成多个不重复多段字符串(每个段可自定义长度) 哪个字段有输入长度,即为生成多少段字符 1、生成10组...
在许多应用领域中,比如在线考试系统、游戏开发或是数据处理等场景,生成不重复的随机数是一项非常重要的技术。本文将详细介绍几种不同的方法来实现这一功能,并通过具体的Java代码示例来进行说明。 #### 方法一:...
"Java开发技术调用Random函数,随机生成32位不重复的字符" 在Java开发技术中,生成随机数是非常常见的需求。例如,在注册用户账户时,需要生成一个随机的密码。在游戏开发中,需要生成随机数来决定游戏的结果。在...
对于生成不重复数字组合,我们可以从最小的数字0开始,逐位填充到6位数中,每填一位都检查是否与已填数字重复,如果重复则回溯到上一位,尝试下一个数字。这个过程会递归地进行,直到生成所有可能的组合。 其次,...
2. **去除重复**:为了确保生成的随机数不重复,可以使用HashSet或数据库来存储已经生成过的随机数,每次生成新数时,都会先检查该数是否已存在,如果不存在则添加并返回,否则继续生成新的随机数。 3. **数据库...