这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » C语言、Java两种方式下的——规定范围内不重复随机数

共2条 1/1 1 跳转至

C语言、Java两种方式下的——规定范围内不重复随机数

高工
2018-01-02 21:41:58     打赏

示例1:C语言版

[cpp] view plain copy
  1. #include <stdio.h>  

  2. #include <stdlib.h>  

  3. #include <time.h>  

  4. //随机产生规定个数的不重复数字  

  5. int findSame(int *arr, int in, int n);  

  6.   

  7. int main() {  

  8.     //设置随机种子  

  9.     srand((int)time(0));  

  10.     int arr[40] = {0}, tmp, length = 0;  

  11.   

  12.     while(length <= 39) {  

  13.         tmp = (40 * rand()) / RAND_MAX;  

  14.         //第一个下标数直接复制进数组  

  15.         if (length == 0)  

  16.             arr[length] = tmp;  

  17.         else {  

  18.             //第二个下标数开始,判断随机数是否在数组已经存在,存在的话跳过,不存在就复制进数组  

  19.             if (findSame(arr, tmp, length) == 1)  

  20.                 continue;  

  21.             else   

  22.                 arr[length] = tmp;  

  23.         }  

  24.         length++;  

  25.     }  

  26.           

  27.     for (int i = 0; i < 40; i++)  

  28.         printf("%d ", arr[i]);  

  29.     return 0;  

  30. }  

  31.   

  32. int findSame(int *arr, int in, int n) {  

  33.     for (int i = 0; i < n; i++) {  

  34.         if (arr[i] == in)  

  35.             return 1;  

  36.     }  

  37.     return 0;  

  38. }  



示例2:Java版

[java] view plain copy
  1. import java.util.*;  

  2. //打印10个不重复的随机数字1~10  

  3. public class NoRepeatNumber {  

  4.   

  5.     public static void main(String[] args) {  

  6.         Random random = new Random();  

  7.         int [] nums = new int[10];  

  8.         List<Integer> mylist = new ArrayList<Integer>();  

  9.         int n = 10, temp, i = 0;  

  10.           

  11.         while(mylist.size() < n){  

  12.             temp = random.nextInt(n) + 1;  

  13.             if (!mylist.contains(temp)) {  

  14.                 mylist.add(temp);  

  15.                 nums[i] = temp;  

  16.                 System.out.print(nums[i] + " ");  

  17.             }         

  18.         }  

  19.     }  

  20.   

  21. }  



      刚开始学习Java,还真是有些不适应,主要体现在库的使用,我的感觉是如果对库有深入的了解才能写出高质量的代码。




专家
2018-01-03 08:49:06     打赏
2楼

谢谢楼主分享源码。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]