一个简单的算法,定义一个长度为n的数组,随机顺序存储1至n的的全部正整数,不重复。

前些天看到.net笔试习题集上的一道小题,要求将1至100内的正整数随机填充到一个长度为100的数组,求一个简单的算法。

今天有空写了一下。代码如下,注释比较详细:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Text.RegularExpressions;
 6
 7 namespace TestNumber
 8 {
 9     class Program
10     {
11         //定义判断正整数的正则表达式
12         public static string regex = "^[1-9][0-9]*";
13         static void Main(string[] args)
14         {
15
16             Console.WriteLine("please input a number!");
17             string InputStr = Console.ReadLine();
18             //判断输入是否正整数,不是的话,结束方法
19             if (!Regex.IsMatch(InputStr,regex))
20             {
21                Console.WriteLine("input format error !");
22                return;
23             }
24             //转换整形
25             int InputNum=Convert.ToInt32(InputStr);
26
27             //创建整形集合,将1至n放置集合
28             List<int> NumList = new List<int>();
29             for (int j = 1; j < InputNum+1; j++)
30             {
31                 NumList.Add(j);
32             }
33             //定义一个随机数实例
34             Random R=new Random();
35             int[] OutputNum = new int[InputNum];
36             for (int i = 0; i < InputNum; i++)
37             {
38                 //获取集合的随机一个元素
39                 int k = R.Next(0, InputNum-i);
40                 //将元素放置数组
41                 OutputNum[i] = NumList[k];
42                 //集合移除该元素
43                 NumList.RemoveAt(k);
44             }
45             foreach (var i in OutputNum)
46             {
47                 Console.Write(i+",");
48             }
49
50         }
51     }
52 }

测试异常结果如下:

测试正常结果如下:

ok,that‘s all.

时间: 2024-10-11 06:36:01

一个简单的算法,定义一个长度为n的数组,随机顺序存储1至n的的全部正整数,不重复。的相关文章

给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点

#include <iostream> #include <string.h> #include <stdlib.h> #include <stack> using namespace std; struct Node { int data; struct Node* next; }; struct Node* create_list(int len) { if (len <= 0) return NULL; struct Node* head; st

一个简单的算法,分布式系统的性能瞬间被提升10倍以上!

一.概要 这篇文章,给大家聊聊分布式文件系统HDFS在大量客户端并发写数据时,如何进行性能优化? 二.背景引入 先引入一个小的背景,假如多个客户端同时要并发的写Hadoop HDFS上的一个文件,这个事儿能成吗? 明显不可以接受啊,因为HDFS上的文件是不允许并发写的,比如并发的追加一些数据什么. 所以HDFS里有一个机制,叫做文件契约机制. 也就是说,同一时间只能有一个客户端获取NameNode上面一个文件的契约,然后才可以写入数据. 此时如果其他客户端尝试获取文件契约的时候,就获取不到,只能

php学习,一个简单的Calendar(2) 一个简单的活动页面

有了前面的基础,后面就是将页面展示出来. 预览图如下:1号和31号分别有活动,会一并显示出来   这里需要搞定几个问题,一个就是数据库的连接,我们用\sys\class\class.db_connect.inc.php <?php   /* * 数据库操作(数据库访问,认证等) */   class DB_Connect { /** * Stores a database object * * @var object A database object */ protected $db;   /

碰到的一个简单的算法题,关于两个字符串word1和word2,判断word1能不能只通过删除字符就能够得到word1.

这是我写的一个解法,大概思路是说.首先判断如果word2的长度大于word1则直接返回false,负责继续执行. 我们判断在word2中的每一个字符在word1中出现的位置,如果刚好符合word1中的全部或者部分字符的组成顺序那么就符合返回true. 具体的代码实现如下: static boolean isTrans(String word1,String word2){ if(word2==null || word2.length()==0) return true; if(word1 ==

java研究一个简单的算法碰到这种输出,哎,以前还真没注意还能这样......

求大神指定这种运行原理叫什么????? package org.rui.util; import java.util.HashMap; import java.util.Map; public class A { public static void main(String[] args) { Map<String, String> m = new HashMap<String, String>(); Map m2 = m; m2.put("a", "

iOS把一个简单的图形变成一个圆

push是定义的一个button push.layer.masksToBounds = YES; push.layer.cornerRadius = 100; push.layer.borderWidth = 10; push.layer.borderColor = [[UIColor blackColor] CGColor];

一个简单算法题引发的思考&lt;DNA sorting&gt;(about cin/template/new etc)

首先是昨天在北京大学oj网上看到一个简单的算法题目,虽然简单,但是如何完成一段高效.简洁.让人容易看懂的代码对于我这个基础不好,刚刚进入计算机行业的小白来说还是有意义的.而且在写代码的过程中,会发现自己平时学习中不会发现的问题,所以想写下这个博客,主要是便于自己对算法的理解. 来,上题. DNA Sorting Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 91599   Accepted: 36781 Descript

定义一个带参带返回值的方法,实现输出随机数数组

public class mains { public static void main(String[] args) { // 创建对象,对象名为hello mains hello = new mains(); // 调用方法并将返回值保存在变量中 int[] nums = hello.getArray(8); // 将数组转换为字符串并输出 System.out.println(Arrays.toString(nums)); } /* * 功能:创建指定长度的int型数组,并生成100以内随

定义一个函数

Python3 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如 print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串