产生1000w不重复的数字

//purpose:产生随机的不重复的测试数据
//copyright@ 2010.05.30 july 
//参考:http://blog.csdn.net/v_JULY_v/article/details/6451990
//1000w数据量,要保证生成不重复的数据量;
//data: 2012.10.9

#include<iostream>
#include<time.h>
#include<assert.h>

//文件操作用到这个头文件
#include<fstream>

//srand函数用到这个文件
#include<stdlib.h>
using namespace std;

const int size = 10000000;
int num[size];

int main(int argc, char *argv[])
{
	int n;
	FILE *fp = fopen("data.txt", "w");
	assert(fp);

	for (n = 1; n <= size; n++)
		num[n] = n;
	srand((unsigned)time(NULL));
	int i, j;

	for (n = 0; n < size; n++)
	{
		i = (rand() * RAND_MAX + rand()) % 10000000;
		j = (rand() * RAND_MAX + rand()) % 10000000;
		swap(num[i], num[j]);
	}

	for (n =0; n < size; n++)
	{
		fprintf(fp, "%d ", num[n]);
	}
	fclose(fp);
	return 0;
}


### 回答1: 下面是一个简单的 Java 程序,用于生成四位验证码: ```java import java.util.Random; public class CaptchaGenerator { public static void main(String[] args) { String captcha = generateCaptcha(); System.out.println("验证码:" + captcha); } public static String generateCaptcha() { String chars = "2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"; Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 4; i++) { char c = chars.charAt(random.nextInt(chars.length())); sb.append(c); chars = chars.replace(Character.toString(c), ""); } return sb.toString(); } } ``` 该程序使用了一个包含除了要排除的字符外的所有数字和字母的字符串,每次随机选取一个字符,并将该字符从字符串中删除,以确保验证码中没有重复的字符。 ### 回答2: 编写一个为网站产生验证码的Java程序可以通过以下步骤实现: 1. 首先,创建一个包含数字和大小写字母的字符数组,不包含不能使用的字符(如1,l,L,0,o,O,2,z,Z,9,g)。 ```java char[] characters = {'A', 'B', 'C', 'D', 'E', 'F', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', '3', '4', '5', '6', '7', '8'}; ``` 2. 创建一个StringBuilder对象来存储生成的验证码。 ```java StringBuilder captcha = new StringBuilder(); ``` 3. 使用Random类生成一个随机索引,然后从字符数组中获取对应的字符,并将其追加到验证码字符串中。 ```java Random random = new Random(); for (int i = 0; i < 4; i++) { int index = random.nextInt(characters.length); captcha.append(characters[index]); } ``` 4. 最后,将生成的验证码作为返回值输出。 ```java return captcha.toString(); ``` 完整的Java代码如下所示: ```java import java.util.Random; public class CaptchaGenerator { public static void main(String[] args) { System.out.println(generateCaptcha()); } public static String generateCaptcha() { char[] characters = {'A', 'B', 'C', 'D', 'E', 'F', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', '3', '4', '5', '6', '7', '8'}; StringBuilder captcha = new StringBuilder(); Random random = new Random(); for (int i = 0; i < 4; i++) { int index = random.nextInt(characters.length); captcha.append(characters[index]); } return captcha.toString(); } } ``` 运行该程序,可以生成一个四位的验证码,其中不包含不能使用的字符。 ### 回答3: 以下是一个生成验证码的java程序: ``` import java.util.Random; public class CaptchaGenerator { public static void main(String[] args) { String captcha = generateCaptcha(); System.out.println(captcha); } public static String generateCaptcha() { String characters = "345678abcdefghijkmnpqrstuvwxyABCDEFGHJKLMNPQRSTUVWXY"; StringBuilder captcha = new StringBuilder(); Random random = new Random(); while (captcha.length() < 4) { int index = random.nextInt(characters.length()); char ch = characters.charAt(index); // 检查字符是否已存在,避免重复 if (captcha.indexOf(String.valueOf(ch)) == -1) { captcha.append(ch); } } return captcha.toString(); } } ``` 在这个程序中,我们使用了一个`characters`字符串来保存可以用于生成验证码的字符。这个字符串中不包含1、l、L、0、o、O、2、z、Z、9和g,以避免混淆。 然后,我们使用`Random`类生成一个随机数,根据随机数生成一个随机索引,并根据索引获取对应的字符。我们检查这个字符是否已经存在于验证码中,如果不存在,则将其添加到验证码中。 通过循环重复以上步骤,直到验证码的长度达到4位。最后,我们返回生成的验证码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值