Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 1
1

Алгоритм Неймана - случайные числа

01.06.2017, 12:24. Показов 2519. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте нужно чтобы при выводе
т. е. 46 → 2116 (11) →121(12)→ 144(14)→ 196(19) → 361(36)…
g = 0.46 → 0.11 → 0.12 → 0.14 → 0.19 → 0.36…

Условие задачи:
Алгоритм Неймана
Получение последовательности равномерно распределенных в диапазоне 0 – 1 чисел gi

1) взять произвольное число из 2*r цифр (не обязательно десятичных);
2) возвести в квадрат;
3) у квадрата этого числа оставить 2r средних цифр - т.е. отбросить первые r или r-1 первых и r последних;
4) полученное число (опять же из 2*r или 2*r – 1 цифр) возвести в квадрат.
5) повторить процедуру
Случайные числа gi получаются умножением полученных на шаге 3, каждого этапа чисел на 10 – 2r .
НАПРИМЕР:
пусть r =1; начальное число 46; g1 = 0.46; 462 =2116…
т. е. 46 → 2116 (11) →121(12)→ 144(14)→ 196(19) → 361(36)…
g = 0.46 → 0.11 → 0.12 → 0.14 → 0.19 → 0.36…

Мой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
for (int i = 1; i < 10; i++)
            {
                A1[i] = Math.Pow(start, i);
                if ((A1[i].ToString().Length) % 2 == 0)
                {
                    
                    A11[i] = Math.Pow(Convert.ToDouble(A1[i].ToString().Substring((((A1[i].ToString().Length) / 2) - 1), 2)), 2);
                    A111[i] = Math.Pow(Convert.ToDouble(A11[i].ToString().Substring((((A11[i].ToString().Length) / 2) - 1), 2)),2);
                    A1111[i] = Math.Pow(Convert.ToDouble(A111[i].ToString().Substring((((A111[i].ToString().Length) / 2) - 1), 2)), 2);
                   // if (i >= 3)
                      //  A[i] = Math.Pow(Convert.ToDouble(A1111[i].ToString().Substring((((A1111[i].ToString().Length) / 2) - 1), 2)), 2) + rand.NextDouble();
                    A11111[i] = Math.Pow(Convert.ToDouble(A1111[i].ToString().Substring((((A1111[i].ToString().Length) / 2) - 1), 2)), 2);
                    A111111[i] = Math.Pow(Convert.ToDouble(A11111[i].ToString().Substring((((A11111[i].ToString().Length) / 2) - 1), 2)), 2);
                    A1111111[i] = Math.Pow(Convert.ToDouble(A111111[i].ToString().Substring((((A111111[i].ToString().Length) / 2) - 1), 2)), 2);
                    A11111111[i] = Math.Pow(Convert.ToDouble(A1111111[i].ToString().Substring((((A1111111[i].ToString().Length) / 2) - 1), 2)), 2);
                    A111111111[i] = Math.Pow(Convert.ToDouble(A11111111[i].ToString().Substring((((A11111111[i].ToString().Length) / 2) - 1), 2)), 2);
                    A1111111111[i] = Math.Pow(Convert.ToDouble(A111111111[i].ToString().Substring((((A111111111[i].ToString().Length) / 2) - 1), 2)), 2);
                    A11111111111[i] = Math.Pow(Convert.ToDouble(A1111111111[i].ToString().Substring((((A1111111111[i].ToString().Length) / 2) - 1), 2)), 2); 
                }
                else
                {
                    A11[i] = Math.Pow(Convert.ToDouble(A1[i].ToString().Substring(((A1[i].ToString().Length) / 2), 1)), 2);
                    A111[i] = Math.Pow(Convert.ToDouble(A11[i].ToString().Substring(((A11[i].ToString().Length) / 2), 1)), 2);
                    A1111[i] = Math.Pow(Convert.ToDouble(A111[i].ToString().Substring(((A111[i].ToString().Length) / 2), 1)), 2);
                    //if (i >= 3)
                      //  A[i] = Math.Pow(Convert.ToDouble(A1111[i].ToString().Substring(((A1111[i].ToString().Length) / 2), 1)), 2) + rand.NextDouble();
                    A11111[i] = Math.Pow(Convert.ToDouble(A1111[i].ToString().Substring(((A1111[i].ToString().Length) / 2), 1)), 2);
                    A111111[i] = Math.Pow(Convert.ToDouble(A11111[i].ToString().Substring(((A11111[i].ToString().Length) / 2), 1)), 2);
                    A1111111[i] = Math.Pow(Convert.ToDouble(A11111[i].ToString().Substring(((A11111[i].ToString().Length) / 2), 1)), 2);
                    A11111111[i] = Math.Pow(Convert.ToDouble(A1111111[i].ToString().Substring(((A1111111[i].ToString().Length) / 2), 1)), 2);
                    A111111111[i] = Math.Pow(Convert.ToDouble(A11111111[i].ToString().Substring(((A11111111[i].ToString().Length) / 2), 1)), 2);
                    A1111111111[i] = Math.Pow(Convert.ToDouble(A111111111[i].ToString().Substring(((A111111111[i].ToString().Length) / 2), 1)), 2);
                    A11111111111[i] = Math.Pow(Convert.ToDouble(A1111111111[i].ToString().Substring(((A1111111111[i].ToString().Length) / 2), 1)), 2);
                }
                Console.WriteLine(A0[i] + A1[i] + "=>" + A11[i] + '(' + A111[i] + ") =>" + A1111[i] + '(' + A11111[i] + ") =>" + A111111[i] + '(' + A1111111[i] + ")" + A11111111[i] + '(' + A111111111[i] + ")" + A1111111111[i] + '(' + A11111111111[i] + ")");
Что получилось:
46=>2116(121) =>144(196) =>361(1296)841(7056)25(625)
2116=>121(144) =>196(361) =>1296(841)7056(25)625(3844)
97336=>9(81) =>1(1) =>1(1)1(1)1(1)
4477456=>49(81) =>1(1) =>1(1)1(1)1(1)
205962976=>36(36) =>36(36) =>36(36)36(36)36(36)
9474296896=>841(7056) =>25(625) =>3844(7056)25(625)3844(7056)
435817657216=>5776(5929) =>8464(2116) =>121(144)196(361)1296(841)
20047612231936=>144(196) =>361(1296) =>841(7056)25(625)3844(7056)
922190162669056=>36(36) =>36(36) =>36(36)36(36)36(36)


По идее выводится правильно, но не знаю как сделать это все рамномно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2017, 12:24
Ответы с готовыми решениями:

Случайные числа
Сделал глупую программу, 35 labelов, и каждые 100мс в каждом лэйбле меняется число на рандомное))))...

Неповторяющиеся случайные числа
Здравствуйте, помогите пожалуйста Язык программирования C# Console.WriteLine(&quot;Введите размер...

Случайные числа и наследования
Всем привет. Как сделать так, чтобы консоль (вместо нулей) выводила случайные числа? using...

Алгоритм фон Неймана.
Помогите пожалуйста! вот задача: Алгоритм фон Неймана. Упорядочить массив а1, а2, ..., аn по...

0
01.06.2017, 12:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2017, 12:24
Помогаю со студенческими работами здесь

алгоритм фон Неймана
блин... помогите пожалуйста... надо упорядочить массив по неубыванию с помощью алгоритма...

Массивы (матрица). Алгоритм фон Неймана
Вообщем нужно сделать такой массив на Pascal. Пожалуйста помогите... 1 1 1 … 1 1 1 0 1 1 … 1 1 0...

Упорядочить числа по неубыванию методом фон Неймана
Помогите плиз! Дано N целых чисел. Упорядочить их по неубыванию методом фон Неймана: завести два...

Введены случайные целые числа a, b, c, d. Правда ли, что не все числа отрицательны
Введены случайные целые числа a,b,c,d. Правда ли,что не все числа отрицательны?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru