如何查找替换为随机数值取数组的数值 不重复

随机从数组中选取多个不重复的元素。
一个一定长度的数组随机抽取多个不重复的元素,让你做你怎么做?
这个问题的方法很多。
但我只选择了一种如下。
将数组打乱抽取前5个。
因为打乱是随机的。所以我们可以认为是随机抽取的;
shuffle(array)
//把数组中的元素按随机顺序重新排列
array_slice(array,offset,length,preserve)
// 从数据中抽取指定的某一段
range(first,second,step)
创建并返回一个包含指定范围的元素的数组
class randNum{
&& &public
$numbers = Array();& //定义一个空的数组
&& &public $Num
//定义随机产生的数组长度
&& &public
&& &public
function randR(){
&$numbers = $this -&
&$Num = $this -& N
&//shuffle 将数组顺序随即打乱
&shuffle ($numbers);
&$this -& _shuffle
&//判断数组长度是否大于所取值的长度
&&&&&&&&&&&&&&&
if(count($numbers)&$Num){
&//数组长度达不到需要的长度时,打乱数组全部返回
&echo '&br
/&您的数组长度达不到需要长度&br
&//array_slice 取该数组中的某一段
array_slice($numbers,0,$Num);
$randA = new randNum();
$randA -& numbers = range(1,20);
$randA -& Num = 5;
print_r($randA-&randR());
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。JAVA随机数之多种方法从给定范围内随机N个不重复数 -
- ITeye技术网站
博客分类:
一、JAVA中生成随机数的方式
1、在j2se中使用Math.random()令系统随机选取一个0~1之间的double类型小数,将其乘以一个数,比如25,就能得到一个0~25范围内的随机数,这个在j2me中没有;
int randomNumber = (int) Math.round(Math.random()*(max-min)+min);
2、在System类中有一个currentTimeMillis()方法,这个方法返回从号0点0分0秒到目前的一个long型的毫秒数,可作为一个随机数,还可以将其对某些数取模,就能限制随机数的范围;此方式在循环中同时产生多个随机数时,会是相同的值,有一定的局限性!
long randomNum = System.currentTimeMillis();
int randomNumber = (int) randomNum%(max-min)+
3、使用java.util.Random类来产生一个随机数发生器,这个也是我们在j2me的程序里经常用的一个取随机数的方法。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。 如果两个Random对象使用相同的种子(比如都是25),并且以相同的顺序调用相同的函数,那它们返回值完全相同。
Random random = new Random();
int randomNumber =
random.nextInt(max)%(max-min+1) +
二、随机给定范围内N个不重复的数
1、方法一:最简单最易理解的两重循环去重
public static int[] randomCommon(int min, int max, int n){
if (n & (max - min + 1) || max & min) {
return null;
int[] result = new int[n];
int count = 0;
while(count & n) {
int num = (int) (Math.random() * (max - min)) +
boolean flag = true;
for (int j = 0; j & j++) {
if(num == result[j]){
flag = false;
result[count] =
2、方法二:利用HashSet的特征,只能存放不同的值
public static void randomSet(int min, int max, int n, HashSet&Integer& set) {
if (n & (max - min + 1) || max & min) {
for (int i = 0; i & i++) {
int num = (int) (Math.random() * (max - min)) +
set.add(num);
int setSize = set.size();
if (setSize & n) {
randomSet(min, max, n - setSize, set);
3、方法三:排除已随机到的数
public static int[] randomArray(int min,int max,int n){
int len = max-min+1;
if(max & min || n & len){
return null;
int[] source = new int[len];
for (int i = i & min+ i++){
source[i-min] =
int[] result = new int[n];
Random rd = new Random();
int index = 0;
for (int i = 0; i & result. i++) {
index = Math.abs(rd.nextInt() % len--);
result[i] = source[index];
source[index] = source[len];
调用实例:
public static void main(String[] args) {
int[] reult1 = randomCommon(20,50,10);
for (int i : reult1) {
System.out.println(i);
int[] reult2 = randomArray(20,50,10);
for (int i : reult2) {
System.out.println(i);
HashSet&Integer& set = new HashSet&Integer&();
randomSet(20,50,10,set);
for (int j : set) {
System.out.println(j);
浏览: 61122 次
来自: 耒阳
初学oracle的飘过!!
&div class=&quote_title ...
让程序员醒悟什么?
francisyc 写道外包,非外包都待过,觉得外包并没有那么 ...
&div class=&quote_title ...&这篇文章主要介绍了从数组中随机取x条不重复数据的JS代码,有需要的朋友可以参考一下工作中经常遇到有关数组的一些操作&&1. 从数据中随机取x条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环)&代码如下:/*从数组arr中随机取x条不重复的数据&*/&function myRand(arr,num){& & var newArr = [];& & rand(num); & &//随机 x 个&& & function rand(k){& & & & if(k==0){& & & & & && & & & }& & & & var index = Math.floor(Math.random() * arr.length);& & & & var flag =& & & & S.each(newArr,function(v){& & & & & & if(v == arr[index]){& & & & & & & & flag =& & & & & & }& & & & });& & & & if(flag){& & & & & & newArr.push(arr[index]);& & & & & & k--;& & & & }& & & & rand(k);& & }& & return newA&}&&&2.从对象中随机取x条不重复的数据&&代码如下:/*随机从对象obj中取x条&*/function myRand(){& & var S = KISSY;& & var obj={& & & & '01':{name:'a'},& & & & '02':{name:'b'},& & & & '03':{name:'c'},& & & & '04':{name:'d'},& & & & '05':{name:'e'},& & & & '06':{name:'f'},& & & & '07':{name:'g'},& & & & '08':{name:'h'},& & & & '09':{name:'i'},& & & & '10':{name:'g'}& & };& & var arr = [];& & S.each(obj,function(v,k){& & & & arr.push(k);& & });& & //随机取3个& & var newArr = myRand(arr,3);& & S.each(newArr,function(b){& & & & console.log(obj[b]);& & })};&&3. 去除数组的重复项&代码如下:/*去除数组的重复项&*/function uniqArr(arr){& & function toObject(a) {& & & & var o = {};& & & & for (var i=0, j=a. i&j; i=i+1) {& & & & & & o[a[i]] =& & & & }& & & && & };& & function keys(o) {& & & & var a=[],& & & & for (i in o) {& & & & & & if (o.hasOwnProperty(i)) { // 这里, YUI源码中是lang.hasOwnProperty(o, i)& & & & & & & & a.push(i);& & & & & & }& & & & }& & & && & };& & return keys(toObject(arr));}
欢迎转载:
推荐:    怎样从一列中不重复地随机提取数据有时需要在Exc;
怎样从一列中不重复地随机提取数据有时需要在Excel中从某列随机提取一些数据,而且数据不能被重复提取。例如在进行随机抽样时,就需要进行随机地、不重复地提取操作。在Excel中,可以用多种方法实现从一列中随机不重复地提取数据,下面介绍其中的一些方法。假如要从A1:A100区域中随机挑出一些名单:方法一:RAND函数+排序1.在B1单元格中输入公式:=RAND()回车后向下填充到B2:B100区域。2.按照B列进行排序。方法是选择B1:B100区域中的任意单元格,单击工具栏中的排序按钮“A→Z”,A列中的名单就会变成随机排列了,并且每次单击排序按钮都会产生一个新的随机序列。从A列中复制一些名单到其他区域即可。方法二:RAND+RANK函数先用上述方法在B1:B100区域填充RAND函数,然后在C1单元格中输入公式:=INDEX($A$1:$A$100,RANK(B1,$B$1:$B$100))再拖到填充柄向下填充,即可获得所需的随机数据。如果要获得新的随机数据,按F9键即可。这个方法适合于不改变工作表结构的情况。方法三:VBA代码还可以用下面的VBA代码来进行随机不重复地提取。假如要从某列(本例为A1:A1000)中随机不重复地提取100个数据,将其放到指定区域(本例为C1:C100)中:Sub RandomSelect()Dim TempArr, TheList(1 To 1000, 1 To 1) As VariantTempArr = Range(&a1:a1000&)For i = 1000 To 1 Step -1j = Int(Rnd * i) + 1TheList(i, 1) = TempArr(j, 1)TempArr(j, 1) = TempArr(i, 1)Next iRange(&c1:c100&) = TheListEnd Sub上述代码中读取和写入数据时没有用For-Next循环,速度较快,特别适合于数据量较大的情况
包含各类专业文献、高等教育、中学教育、各类资格考试、行业资料、外语学习资料、应用写作文书、专业论文、怎样从一列中不重复地随机提取数据75等内容。 
 列和 B 列, 点击“数据”菜单中的“排序”,在“主要关键字”一栏选择“列 ...如果你需要一组特定数量的无重复随机数字――比如说, 1~50 中挑出 6 个数字...  用函数公式动态取得一列内容的不重复值样例数据如下:网站 天涯社区 搜狐汽车社区 广州视窗 支付宝论坛 中国部落社区 合肥业主社区
社区 verycd 社区 西陆...  Excel 中如何找出两列数据中不重复的记录 /view/dc85ec3 a87c2c503.html 查看本文应用于的产品 小易在工作中经常会遇到这样的...  如何在EXCEL的一列中查找重复的数据_计算机软件及应用_IT/计算机_专业资料。如何在 EXCEL 的一列中查找重复的数据 ( 08:45:32) 转载 标签: excel ...  如何将 EXCEL 两列比较后不重复的数据复制到另一列上如何将 EXCEL 两列比较后不重复的数据复制到另一列上 假如你要比较 A 列与 B 列数据是否重复,应该有三种...  从一列数值中提取正数的几个公式 来源:excel 格子社区 如果要从某列中提取第一个出现的正数,可以用下面 的数组公式,假如数值在 A1:A10 区域中: =INDEX(A1:...  EXCEL 一列单元格中有重复的数值 怎么快速找出重复的单元格 1、原来数据在 A 列,A1 开始,B1 输入=IF(COUNTIF(A:A,A1)&1,&有重复&,&&) , 填充到底 2...  从一列中按出现次数多少顺序提取数据 来源:excel 格子社区 在 Excel 中某列包含许多重复的数据,要从该列中按 出现次数多少的顺序提取数据,可以用下面的数组公 式...  工作表的 A 列中包含一些数据,现在要 在另一列中将 A 列的每个数据重复 N 次,如图是在 B 列中重复 2 次的情况,在不使用 VBA 代码的情况下, 如何快速...

我要回帖

更多关于 js生成不重复随机数组 的文章

 

随机推荐