public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 6, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Найдите разность между суммой квадратов и квадратом суммы первых десяти натуральных чисел.", Result = Calculate(10).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate10) }); pc.Cases.Add(new CaseContainer { Task = "Найдите разность между суммой квадратов и квадратом суммы первых ста натуральных чисел.", Result = Calculate(100).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate100) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 14, Task = content, Cases = new List <CaseContainer>() }; var calcA = CalculateWithCache(1000000); pc.Cases.Add(new CaseContainer { Task = "Какой начальный элемент меньше 1000000 генерирует самую длинную последовательность по заданному правилу? Метод с использование кэша.", Result = $"Элемент: {calcA.number}, длина: {calcA.length}", BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateWithCacheBench, 2, 3) }); var calcB = CalculateWithoutCache(1000000); pc.Cases.Add(new CaseContainer { Task = "Какой начальный элемент меньше 1000000 генерирует самую длинную последовательность по заданному правилу? Метод без использования кэша", Result = $"Элемент: {calcB.number}, длина: {calcB.length}", BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateWithoutCacheBench, 2, 3) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 12, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Каково первое треугольное число, у которого более пяти делителей.", Result = Calculate(5).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate5) }); pc.Cases.Add(new CaseContainer { Task = "Каково первое треугольное число, у которого более пятисот делителей.", Result = Calculate(500).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate500, 2, 3) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 5, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Самое маленькое число делится нацело на все числа от 1 до 10.", Result = Calculate(10).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate10) }); pc.Cases.Add(new CaseContainer { Task = "Самое маленькое число делится нацело на все числа от 1 до 20.", Result = Calculate(20).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate20) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 10, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сумма простых чисел меньше 10.", Result = Calculate(10).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate10) }); pc.Cases.Add(new CaseContainer { Task = "Сумма простых чисел меньше двух миллионов.", Result = Calculate(2000000).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate2000000) }); return(pc); }
public static void Display() { Console.OutputEncoding = System.Text.Encoding.UTF8; WatchstopBenchmark.SetIgnoreConsts(false); // интерфейс IProblem удостоверяется в том что данные типы обладают методом CompleteProblem() List <ProblemContainer> problems = new List <ProblemContainer>(); var problemsTypes = ProblemHandling.GetProblemTypes(); // тестируем последную добавленную проблему (ту над которой ведется работа) var lastProblem = ProblemHandling.RunSingle(problemsTypes.Last()); DisplayProblem(lastProblem); Console.WriteLine("\nНажмите клавишу, чтобы произвести решение остальных проблем начиная с первой..."); Console.ReadKey(); foreach (var problemType in problemsTypes) { var problem = ProblemHandling.RunSingle(problemType); DisplayProblem(problem); } Console.WriteLine("Готово."); Console.ReadKey(); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 24, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Какова миллионная словарная перестановка из цифр 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9? Подсчет вплоть до миллионой.", Result = CalculateBruteForce().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBruteForceBench) }); pc.Cases.Add(new CaseContainer { Task = "Какова миллионная словарная перестановка из цифр 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9? Вычисление миллионой с помощью факториалов.", Result = CalculateFactorialMagic().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateFactorialMagicBench) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 36, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Найдите сумму всех чисел меньше ста, являющихся палиндромами по основаниям 10 и 2.", Result = Calculate(100).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate100) }); pc.Cases.Add(new CaseContainer { Task = "Найдите сумму всех чисел меньше миллиона, являющихся палиндромами по основаниям 10 и 2.", Result = Calculate(1000000).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate1000000) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 8, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Наибольшее произведение 4 последовательных цифр.", Result = Calculate(4).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate4) }); pc.Cases.Add(new CaseContainer { Task = "Наибольшее произведение 13 последовательных цифр.", Result = Calculate(13).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate13) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 1, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сумма всех натуральных чисел меньше 10, кратных 3 или 5.", Result = Calculate(10).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate10) }); pc.Cases.Add(new CaseContainer { Task = "Сумма всех натуральных чисел меньше 1000, кратных 3 или 5.", Result = Calculate(1000).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate1000) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 28, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сумма чисел в диагоналях спирали 5 на 5, образованной таким же способом.", Result = Calculate(5).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate5) }); pc.Cases.Add(new CaseContainer { Task = "Сумма чисел в диагоналях спирали 1001 на 1001, образованной таким же способом.", Result = Calculate(1001).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate1001) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 7, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "6-ое простое число.", Result = Calculate(6).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate6) }); pc.Cases.Add(new CaseContainer { Task = "10001-ое простое число.", Result = Calculate(10001).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate10001) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 20, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Cумма цифр 10!", Result = Calculate(10).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate10) }); pc.Cases.Add(new CaseContainer { Task = "Cумма цифр 100!", Result = Calculate(100).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate100) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 3, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Самый большой простой делитель числа 13195.", Result = Calculate(13195).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate13195) }); pc.Cases.Add(new CaseContainer { Task = "Самый большой простой делитель числа 600851475143.", Result = Calculate(600851475143).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate600851475143) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 2, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сумма всех четных чисел ряда Фибоначи не превыщающих 10.", Result = Calculate(10).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate10) }); pc.Cases.Add(new CaseContainer { Task = "Сумма всех четных чисел ряда Фибоначи не превыщающих 4000000.", Result = Calculate(4000000).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate4000000) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 29, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сколько различных членов имеет последовательность a^b для 2 ≤ a ≤ 5 и 2 ≤ b ≤ 5?", Result = Calculate(new Range(2, 5), new Range(2, 5)).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate2To5) }); pc.Cases.Add(new CaseContainer { Task = "Сколько различных членов имеет последовательность a^b для 2 ≤ a ≤ 100 и 2 ≤ b ≤ 100?", Result = Calculate(new Range(2, 100), new Range(2, 100)).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate2To100) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 25, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Какова порядковый номер первого члена последовательности Фибоначчи, содержащего 3 цифры.", Result = Calculate(3).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate3) }); pc.Cases.Add(new CaseContainer { Task = "Какова порядковый номер первого члена последовательности Фибоначчи, содержащего 1000 цифр.", Result = Calculate(1000).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate1000) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 26, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Значение d < 11, для которого 1/d в десятичном виде содержит самую длинную повторяющуюся последовательность цифр.", Result = Calculate(11).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate11) }); pc.Cases.Add(new CaseContainer { Task = "Значение d < 1000, для которого 1/d в десятичном виде содержит самую длинную повторяющуюся последовательность цифр.", Result = Calculate(1000).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate1000) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 17, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сколько букв понадобится для записи всех чисел от 1 до 5 включительно?", Result = Calculate(5).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate5) }); pc.Cases.Add(new CaseContainer { Task = "Сколько букв понадобится для записи всех чисел от 1 до 1000 включительно?", Result = Calculate(1000).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(Calculate1000) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 15, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сколько существует таких маршрутов в сетке 2×2? Быстрый алгоритм", Result = CalculateFast(2).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateFast2) }); pc.Cases.Add(new CaseContainer { Task = "Сколько существует таких маршрутов в сетке 10×10? Быстрый алгоритм", Result = CalculateFast(10).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateFast10) }); pc.Cases.Add(new CaseContainer { Task = "Сколько существует таких маршрутов в сетке 20×20? Быстрый алгоритм", Result = CalculateFast(20).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateFast20) }); pc.Cases.Add(new CaseContainer { Task = "Сколько существует таких маршрутов в сетке 2×2? Медленный алгоритм", Result = CalculateSlow(2).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateSlow2) }); pc.Cases.Add(new CaseContainer { Task = "Сколько существует таких маршрутов в сетке 10×10? Медленный алгоритм", Result = CalculateSlow(10).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateSlow10, 2, 3) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 43, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Найдите сумму всех пан-цифровых чисел из цифр от 0 до 9, обладающих данным свойством.", Result = Calculate().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench, 3, 3) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 32, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сумма всех пан-цифровых произведений, для которых равенство \"множимое × множитель = произведение\" можно записать цифрами от 1 до 9.", Result = Calculate().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench, 3, 3) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 55, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сколько существует чисел Личрэла меньше десяти тысяч?", Result = Calculate().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 46, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Каково наименьшее нечетное составное число, которое нельзя записать в виде суммы простого числа и удвоенного квадрата?", Result = Calculate().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 50, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Какое 12-значное число образуется, если объединить три члена этой прогрессии?", Result = Calculate(1000000).ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 34, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Сумма всех чисел, каждое из которых равно сумме факториалов своих цифр.", Result = Calculate().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 38, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Какое самое большое девятизначное пан-цифровое число можно образовать как объединенное произведение целого числа и (1,2, ... , n), где n > 1?", Result = Calculate().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 40, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Найдите значение следующего выражения: d1 × d10 × d100 × d1000 × d10000 × d100000 × d1000000", Result = Calculate().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 23, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Cумму всех положительных чисел, которые не могут быть записаны как сумма двух избыточных чисел.", Result = Calculate().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench) }); return(pc); }
public ProblemContainer CompleteProblem() { ProblemContainer pc = new ProblemContainer() { Number = 27, Task = content, Cases = new List <CaseContainer>() }; pc.Cases.Add(new CaseContainer { Task = "Произведение коэффициентов a и b.", Result = Calculate().ToString(), BenchmarkResult = WatchstopBenchmark.Benchmark(CalculateBench) }); return(pc); }