Unity/수업내용(C#)

[3.9] 반복문 및 조건문 응용

ljw4104 2021. 3. 9. 15:52
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study00
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random();
            List<float> l = new List<float>();

            int tmp = 0;
            while(tmp < 15000000)
            {
                tmp++;
                int value = 0;
                while (true)
                {
                    int n = r.Next(0, 101);
                    value++;
                    if (n < 30)
                    {
                        //Console.WriteLine("강화성공");
                        float probability = 1f / (float)value * 100f;
                        l.Add(probability);
                        //Console.WriteLine("확률 : " + probability + "%");
                        break;
                    }
                    else
                    {
                        //Console.WriteLine("강화실패");
                    }
                }
            }

            float max = 0;
            foreach(int number in l)
            {
                max += l[number];
            }

            Console.WriteLine(max / l.Count);
        }
    }
}

최근에 뜨거운 확률관련 문제를 바탕으로 

1500만번 실행했을 때, 30% 확률의 비율을 나타내준다.

(30%확률이 뜬 횟수 / 전체 시도 횟수)