private void readDataButton_Click(object sender, EventArgs e) { if (openData.ShowDialog() == DialogResult.OK)//Заупуск окно выбора файла { try { var filePath = openData.FileName; //Путь к файлу using (StreamReader str = new StreamReader(filePath)) //Считывание из файла в перменную { int[] fileContent = str.ReadToEnd().Split('\n').Select(int.Parse).ToArray(); generatorParams = new GeneratorParameters(fileContent[0], fileContent[1], fileContent[2], fileContent[3]); infoBox.WriteLine("Загружены параметры:"); infoBox.WriteLine("Длина: " + generatorParams.length); infoBox.WriteLine("x0: " + generatorParams.x0); infoBox.WriteLine("a: " + generatorParams.a); infoBox.WriteLine("c: " + generatorParams.c); } } catch (SecurityException ex)//Вывод ошибки { MessageBox.Show($"Security error.\n\nError message: {ex.Message}\n\n" + $"Details:\n\n{ex.StackTrace}"); } } }
private void MultiCgButton_Click(object sender, EventArgs e)//мультипликативный конгруэнтный генератор { GeneratorParameters multiParams = new GeneratorParameters(generatorParams.length, generatorParams.x0, generatorParams.a, 0); int[] randomSequence = Generator.CreateSequence(multiParams); infoBox.WriteLine(); infoBox.WriteLine("Полученная МКГ последовательность:"); foreach (var item in randomSequence) { infoBox.Text += (item + " "); } infoBox.WriteLine(); var period = Generator.GetPeriod(randomSequence, out int periodLength); infoBox.WriteLine("Период: " + period); infoBox.WriteLine("Длина периода: " + periodLength); }
public const int ALPHABET_POWER = 15; // Мощность алфавита public static int[] CreateSequence(GeneratorParameters genParams) { return(CreateSequence(genParams.length, genParams.x0, genParams.a, genParams.c)); }