| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Pascal]Двумерные массивы |
| Автор: Dwane 30.3.2009, 09:21 |
| Помогите с решением задачи 3 суток не могу решить. Даны числа а1 до а64 Числа генерирлвать в диапазоне от 1 до 64 по закону нормального распределения.Получить действительную квадратную матрицу порядка 8 элементы которой являются числа от а1 до а64,расположенные в ней по схеме. Схемма на картинке. |
| Автор: solverr 30.3.2009, 19:26 |
| Нормальное распределение - это http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0? |
| Автор: Dwane 30.3.2009, 19:44 |
| Да,и я задавал уже этот вопрос вот мне подсказали. http://www.delphisources.ru/pages/faq/base/normal_distribution.html Но как их выводить по схеме я понять не могу.Нужно несколько циклов вроде. |
| Автор: solverr 30.3.2009, 20:39 | ||
По ссылке, как я понял, уже готовая функция, которая возвращает случайное число, распределенное по нормальному закону с данными параметрами. Но в условии сказано, что число от 1 до 64. То есть надо брать нормально распределенное случайное число, пока не получим число в этом диапазоне? Вообще, странное какое-то задание. Вы уверены, что правильно его поняли? Просто, насколько я понял, основная суть задания в том, чтобы в нужном порядке заполнить элементы матрицы. И логичнее всего было бы просто заполнять ее числами от 1 до 64. |
| Автор: solverr 30.3.2009, 21:20 | ||
Вот программа, которая расставляет числа от 1 до 64:
Пояснения: s = 0 - движемся если можно влево, если нельзя то вверх s = 1 - движемся по диагонали вправо вверх s = 2 - движемся если можно вверх, если нельзя то влево s = 3 - движемся по диагонали влево вниз |
| Автор: Dwane 1.4.2009, 12:19 |
| Огромное спасибо.Да это то что нужно. Вот только один вопрос. У меня это должно быть как элемент большой программы.И когда я добовляю это в программу оно начинает работать немножко не правильно. Выдает очень странные числа причем каждый раз зазные. |
| Автор: volvo877 1.4.2009, 12:46 | ||
Когда ты делаешь эту программу процедурой, ее переменные становятся локальными, и ответственность за их инициализацию лежит на тебе. Надо обнулить массив A перед началом работы:
|
| Автор: Dwane 2.4.2009, 19:55 |
| А можно его результат вывести в графическом режиме через string? У меня что то никак не получается. |
| Автор: volvo877 2.4.2009, 22:46 | ||
Вывести можно всё... Ты не спрашивай, можно или нет, спрашивай как.
|
| Автор: Dwane 5.4.2009, 18:12 | ||
| Я тут посомтрел другие варианты пример и понял что задание ни в этом.Вобщем матрица должна заполнятся именно по схеме. Вот я разобрал более простой пример задачи.
А вот по моему рисунку у меня не получается опять.Помогите пожалуйста. |