Advertisement
SarduMurakumo

TheProbabilityOfGettingACard

Aug 7th, 2020
884
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.16 KB | None | 0 0
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             int top = 1;
  6.             int bot = 1;
  7.             Console.WriteLine("Input quantity of coins in the deck:");
  8.             int QuantityСoins = Convert.ToInt32(Console.ReadLine());          //Количество монет в колоде
  9.             Console.WriteLine("Input the quantity of cards you would like to draw from the deck (20 max):");
  10.             int QuantityOfCardsDrawn = Convert.ToInt32(Console.ReadLine());   //Сколько карт мы берём из колоды (всего их 20)
  11.  
  12.             int[] TopMassive = new int[QuantityOfCardsDrawn];
  13.             int[] BotMassive = new int[QuantityOfCardsDrawn];
  14.  
  15.             int i = 0;                      //счетчик для массива
  16.             int j = QuantityOfCardsDrawn;   //счетчик для массива
  17.  
  18.             while (j > 0)                   //Заполняем верхнюю часть дроби множителями, помещая в массив
  19.             {
  20.                 TopMassive[i] = 20 - i - QuantityСoins;
  21.                 i++;
  22.                 j--;
  23.             }
  24.  
  25.             i = 0;                          //Обнуление счетчиков для массива
  26.             j = QuantityOfCardsDrawn;      
  27.  
  28.             while (j > 0)                   //Заполняем нижнюю часть дроби множителями, помещая в массив
  29.             {
  30.                 BotMassive[i] = 20 - i;
  31.                 i++;
  32.                 j--;
  33.             }
  34.  
  35.             i = 0;                          //Обнуление счетчиков для массива
  36.             j = QuantityOfCardsDrawn;
  37.  
  38.             while (j > 0)                   //Перемножаем верхнюю часть дроби заполненными множителями из массива ТОП
  39.             {
  40.                 top = TopMassive[i] * top;
  41.                 i++;
  42.                 j--;
  43.             }
  44.  
  45.  
  46.             i = 0;                          //Обнуление счетчиков для массива
  47.             j = QuantityOfCardsDrawn;
  48.  
  49.             while (j > 0)                   //Перемножаем нижнюю часть дроби заполненными множителями из массива БОТ
  50.             {
  51.                 bot = BotMassive[i] * bot;
  52.                 i++;
  53.                 j--;
  54.             }
  55.  
  56.             double dTop = Convert.ToDouble(top);
  57.             double dBot = Convert.ToDouble(bot);
  58.             double FinalResult = dTop / dBot;
  59.             FinalResult = 1 - FinalResult;
  60.             FinalResult = Math.Round(FinalResult, 2);
  61.  
  62.             //y = 1 - (((20 - x) / 20) * ((19 - x) / 19) * ((18 - x) / 18) * ((17 - x) / 17) * ((16 - x) / 16));
  63.  
  64.             Console.WriteLine("QuantityСoins        " + QuantityСoins);
  65.             Console.WriteLine("QuantityOfCardsDrawn " + QuantityOfCardsDrawn);
  66.             //Console.WriteLine(top);
  67.             //Console.WriteLine(bot);
  68.             Console.WriteLine("ChanceToGet          " + FinalResult);
  69.             Console.ReadKey();
  70.         }
  71.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement