Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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();
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
        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);
        }
Beispiel #17
0
        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);
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        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);
        }
Beispiel #20
0
        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);
        }
Beispiel #21
0
        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);
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        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);
        }
Beispiel #24
0
        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);
        }
Beispiel #25
0
        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);
        }
Beispiel #26
0
        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);
        }
Beispiel #27
0
        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);
        }
Beispiel #28
0
        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);
        }
Beispiel #29
0
        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);
        }
Beispiel #30
0
        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);
        }