C#作業

來源:互聯網
上載者:User

標籤:.net framework   random   遍曆   asp.net   c#   

       從n個數中隨機選取m(m<=n)個不重複的數並且對選取的m個數進行排序

       在老師布置作業的時候就想到要用數組的一些知識:

       (1) Array(包含AraayList,Hashtable等一些特殊的數組)提供了Sort方法來進行排序,但它常與Reverse方法(反轉數組中元素的順序)一起配合使用。

            Sort方法,接受一個數組,將其實現升序,格式為:Array.Sort(數組)

            Reverse方法,接受一個數組,將其反轉數組中元素的順序,格式為:Array.Reverse(數組)    

       (2)ArrayList(動態數組)提供了兩種方法用於向ArrayList添加元素,即Add和AddRange。

           Add方法將單個元素添加到列表的尾部,其格式為:ArrayList 對象.Add(要添加的值)

           AddRange方法擷取一個實現ICollection介面的集合執行個體,並將這個集合執行個體按順序添加到列表的尾部,其格式為:ArrayList 對象.AddRange(要添加的數組)

       (3)Array提供的數組元素的遍曆,最好使用foreach語句

       (4)還需要用到一個新的知識點就是C#Random()隨機函數,Random.Next()返回非負隨機數。

       隨機數的使用很普遍,可用它隨機顯示圖片,用它防止無聊的人在論壇灌水還可以用來加密資訊等等。本文討論如何在一段數字區間內隨機產生若干個互不相同的隨機數,比如在從1到20間隨機產生6個互不相同的整數,並通過此文介紹Visual c#中隨機數的用法。.net.Frameword中提供了一個專門產生隨機數的類System.Random,此類預設情況下已被導入,編程過程中可以直接使用。我們知道,電腦並不能產生完全隨機的數字,它產生的數字被稱為偽隨機數,它是以相同的機率從一組有限的數字中選取的,所選的數字並不具有完全的隨機性,但就實用而言,其隨機程度已經足夠了。

       第一次嘗試代碼

using System;using System.Collections;//使用ArrayList類需要引入的命名空間using System.Linq;using System.Text;using System.Threading.Tasks;namespace Text{    class Program    {        static void Main(string[] args)        {            ArrayList al = new ArrayList();//建立一個ArrayList類的對象al            Random rm = new Random();//建立一個Random類的對象rm            for (int i = 0; i < 10; i++)            {                int sjs = rm.Next(1,50);//調用Random類的隨機選取非負數方法                al.Add(sjs);//調用ArrayList類的元素末尾添加方法            }            al.Sort();//數組元素的升序排序            foreach (int temp in al)            {                Console.WriteLine(temp);            }            Console.ReadLine();        }    }}

         輸出的結果為:

 

        從上面輸出的結果來看輸出的10個數還是有重複的,雖然有時候輸出的是不重複的,但是如果一定要輸出不重複的10個隨機數就要考慮怎麼去除重複的數並進行再次的選取。

        第二次代碼嘗試

using System;using System.Collections;//使用ArrayList類需要引入的命名空間using System.Linq;using System.Text;using System.Threading.Tasks;namespace Text{    class Program    {        static void Main(string[] args)        {            ArrayList al = new ArrayList();            Random rm = new Random();            int i = 0;            while (i < 10)            {                int sjs = rm.Next(1, 50);                bool IsExist = false;//定義一個布爾型變數並且賦值為false                foreach (int item in al)//判斷選取的隨機數是否相同                {                    if (sjs == item)                    {                        IsExist = true;//如果相同就終止添加到選取數組的末尾                        break;                    }                    else                    {                        IsExist = false;//如果不相同就添加到選取數組中的末尾                    }                }                if (IsExist)                {                    continue;                }                else                {                    al.Add(sjs);                    i++;                }            }            al.Sort();            foreach (int temp in al)            {                Console.WriteLine(temp);            }            Console.ReadLine();        }    }}

        輸出的結果為:

 

 

         再一次代碼輸出運行了幾次終於是沒有重複的了,記得老師還講了兩種方法,有時間了再進行補充。


 

 

 

 

        

      

 

      

C#作業

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.