Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Linq;
- public class Probability
- {
- static void Main()
- {
- Hello();
- Input();
- }
- static void Hello()
- {
- Console.Clear();
- Console.WriteLine("This is a very simple probability calculator.");
- Console.WriteLine("I wrote it to calculate the probability of the Baron dropping his Deathcharger.");
- Console.WriteLine("\nInstructions:");
- Console.WriteLine("\n1. Consult Wowhead for the percentage chance of X item dropping.");
- Console.WriteLine("2. Determine how many times you are willing to run an event or kill a boss for this drop.");
- Console.WriteLine("3. Input them when requested.");
- Console.Write("\nPress [RETURN] to continue.");
- Console.ReadLine();
- Console.Clear();
- }
- static void Input()
- {
- int drop = 0;
- int runs = 0;
- drop = ParseInteger("Enter percentage drop rate: \t");
- runs = ParseInteger("Enter number of runs: \t\t");
- Console.WriteLine();
- Console.Write("\nThe probability of a drop after {0} runs is {1:P}.\n", runs, Calcutron(drop, runs));
- Console.ReadLine();
- }
- static double Calcutron(int drop, int runs)
- {
- // Convert the drop rate percentage into a usable decimal.
- double cuml = 1;
- double prob = 0;
- prob = 1 - (Convert.ToDouble(drop) / 100);
- for (int i = 1; i <= runs; i++)
- cuml *= prob;
- cuml = 1 - cuml;
- return cuml;
- }
- // Parse input.
- static int ParseInteger(string query)
- {
- bool parse = false;
- int parsedInt = 0;
- do
- {
- Console.Write(query);
- parse = Int32.TryParse(Console.ReadLine(), out parsedInt);
- if (!parse)
- ParseErr();
- } while(!parse);
- return parsedInt;
- }
- // +++++ERRORS++++
- static void ParseErr()
- {
- Console.WriteLine("\nPlease input a valid number!");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment