怎样从一个数组中(数组大小不定)随机取出一个数,随机数不能重复的。

供稿:hz-xin.com     日期:2025-01-15
c++ 从数组中随机的取出一个数(不能重复)

代码如下:
import java.util.Arrays;
public class suiji {
public static void main(String[] args) {
int[] arrays=new int[33];
for(int i=1;i<34;i++) {
arrays[i-1]=i;
}
int a=0;
while(a<8) {
a++;
int i=(int)(Math.random()*arrays.length);
System.out.print(arrays[i]+"");
arrays[i] = arrays[arrays.length-1];
arrays = Arrays.copyOf(arrays, arrays.length-1);
}
}
}

扩展资料
C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

可以参考下面的代码:
public static void main(String[] args) {
int s = -1;
int a[] = new int[100];
int i = 0;
while (i < 100) {
s = (int) (Math.random() * 100 + 1);
for (int j = 0; j < 100; j++) {
if (a[j] == s) {
break;
} else if (j == i) {
a[i] = s;
i++;
break;
}
}
}
}



扩展资料:
java参考函数
max(x,y) 返回 x 和 y 之间较大的数
min(x,y) 返回 x 和 y 之间较小的数
pow(x,y) 返回 y^x 的值
random() 返回位于 0 到 1 之间的随机函数
round(x) 四舍五进后与整
sin(x) 返回数字的正弦值
sqrt(x) 返回数字的平方根
tan(x) 返回一个角度的正切值
toSource() 显示对象的流代码
valueOf() 返回数教对象的本初值
参考资料来源:百度百科-Java (计算机编程语言)

随机生成数组下标,取出该下标对应元素,然后标记该位置元素,如果下次再遇到就重新生成下一个随机数。

保留第一个数。从第二个数开始遍历数组。遍历到第k个数时,以1/k的概率用当前数替换掉保留的数。数组遍历结束后,保留的数就是那个随机抽取的数。

遍历一次提取数组长度~用rand函数随机取出一个下标~

可以用vector吗?

如何从现有的一维数组中随机抽取一个数(C#)
\/\/定义一个数组,用来产生随机数(一位数组你可以自己定义,我这里定义一个字符数组)private static char[] constant = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r',...

请问C语言中怎么将一个数组的大小根据我输入扫描的数来进行变化啊?_百 ...
在C语言中,数组的大小通常是在编译时确定的,无法在运行动态改变。但是,你可以使用指针和动态内存分配来实现类似的效果。具体步骤如下:1. 首先,声明一个指针变量和一个整型变量,用于存储输入的数组大小。int *arr;int size;2. 接下来,通过用户输入获取数组的大小。printf("请输入数组的大小:");...

c语言怎么实现从一个数组中随机抽取一个元素?
随机产生一个数,然后每次将数组元素的最后一个数与这个数交换,并且数组的长度减1。int [] b = new int[100];int t = 0, idx = 0, len = a.length;for(int i=0;i<len;i++){ idx = [rand()*(len-i)];b[i] = a[idx];t = a[idx];a[idx] = a[len - 1];a[len -...

c语言实现从一个数组中随机抽取一个元素
随机产生一个数,然后每次将数组元素的最后一个数与这个数交换,并且数组的长度减1。代码如下:include<stdio.h> include<stdlib.h> define N 100 int main(){ int a[N];int i,t,tag;for(i=0;i<N;i++)a[i] = i;tag = N-1;while(tag){ i = rand()%tag;t = a[i];a[i] ...

MATLAB从一维数组中随机抽取一个数,并且返回这个数的位置
T=rand(length(a),1)*(length(a)+1);a(T)

...并将其存在一个3列,行数不定的二维数组中??程序该怎么写??
n = i; \/\/获得该一维数组大小 \/ for(i = 0;i <n;i++){ cout<<p[i]<<" ";} \/ m = n%3 ? n\/3+1 : n\/3; \/\/决定二维数组长度 int (*array)[3] = new int[m][3]; \/\/定义一个数组指针 for(i = 0;i <n;i++){ array[i\/3][i%3] = p[i];} for...

怎样在c语言中比较一个数组中元素的大小?
include int main(){ int numbers[10] = { 10,2,3,4,5,6,9,8,7,1 };int a,b, text, hello;for(a=0; a<10-1; a=a+1) { \/\/在这里进行比较的开始的代码 hello = 1; \/\/假如剩下的元素已经被排序好了,然后接着进行下面的比较 for(b=0; b<10-1-i; b=b+1){...

c语言:我想定义一个行数为n的数组,为什么还是告诉我不确定数组的大小...
你这么写的话,那个n还是一个变量,c语言首先需要编译才能执行,而编译的时候编译器就认为这个n是不确定的,所以他不知道要给你分配多大的存储空间,我建议你可以定义一个指针来做,下面是一个例子。假设数组存的是int型 那么 你先申请10个元素 int* a = (int*)malloc(sizeof(int)*10);如果又来...

...生成一个具有8个元素的整型数组,数组的顺序大小随意,现在要求求和...
main(){ int a[8],i,t,idx;for(i=0;i<=7;i++)scanf("%d",&a[i]);printf("which will be delete?enter its index(start from 0):");scanf("%d",&idx);for(i=idx;i<7;i++)a[i]=a[i+1];for(i=0;i<7;i++)printf("%d ",a[i]);} ...

如何从已经规定的数组中随机取出一个元素?
1. 如果刚学完C语言的基本语法,相信你已经基本掌握了一些常用的数据结构。对于你的问题,推荐你使用链表实现。因为C语言的数据,要动态地删除某一个元素实在是件很麻烦的事。而使用链表,会使删除操作更加便捷和高效。2. 随机性,可以使用C语言中的Random()函数帮你实现,这个函数会产生一个0到N之间...