關於安碩

【服務項目】

 自動化設備控制系統及機構設計
 PC Based 控制系統設計
 PLC 及 HMI 程式設計
 多軸運動控制
 機器視覺檢測系統設計
 資料收集及遠端監控
 設備電控電路設計及控制盤體配線
 機械手臂整合應用
 舊有設備整理及改善
 客製化程式開發
 IPC / 軸控模組 / IO 模組 代理

系統整合外包服務 E-mail: ling.ryan@gmail.com 歡迎來信連絡

2020年10月12日 星期一

[筆記]產生不重複亂數 - 洗牌法

 






namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnRandonGenerate_Click(object sender, EventArgs e)
        {
            int RanRangMin = Convert.ToInt32(tbRandonRangMin.Text);
            int RanRangMax = Convert.ToInt32(tbRandonRangMax.Text);
            int RanQty = Convert.ToInt32(tbRandonQty.Text);
            int ChangeQty = Convert.ToInt32(tbChangeQty.Text);

            int[] Buf = new int[RanRangMax - RanRangMin + 1];

            for (int index = 0; index < Buf.Length; index++)
            {
                Buf[index] = index + RanRangMin;
            }


            Random Ran = new Random();


            for (int index = 0; index < ChangeQty; index++)
            {
                int a = Ran.Next(0, Buf.Length - 1);
                int b = Ran.Next(0, Buf.Length - 1);

                int Tamp = Buf[a];
                Buf[a] = Buf[b];
                Buf[b] = Tamp;

            }

            int[] Result = new int[RanQty];

            for (int index = 0; index < RanQty; index++)
            {
                Result[index] = Buf[index];
            }


            for (int index = 0; index < Result.Length; index++)
            {
                rtbResult.Text += Result[index].ToString() + ",";
            }
        }
    }
}

沒有留言:

張貼留言