Programming

(C#) LottoTest

steloflute 2018. 8. 5. 22:41

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


// 로또 1등이 얼마나 어려운지 실험


namespace LottoTest

{

    class Program

    {

        static Random random = new Random();

        static int[] Lotto()

        {

            var r = new int[45];

            for (int i = 0; i < 45; i++)

            {

                r[i] = i + 1;

            }

            

            for (int i = 0; i < 6; i++)

            {

                int c = r[i];

                int p = random.Next(r.Length);

                r[i] = r[p];

                r[p] = c;

            }


            return r.Take(6).OrderBy(x => x).ToArray();

        }


        static void Main(string[] args)

        {

            var i = 0;

            var first = Lotto();

            while (true)

            {

                i++;

                var r = Lotto();

                if (i % 100000 == 0) Console.WriteLine(i);

                if (r.SequenceEqual(first)) break;

            }

            Console.WriteLine(i);

            Console.WriteLine("Invested capital: {0:N0} won", i * 1000L);

            Console.WriteLine(string.Join(" ", first));

            Console.WriteLine("Press any key.");

            Console.ReadKey();

        }

    }

}