![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
RokDemon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.5.2009 Репутация: нет Всего: нет |
Здравствуйте! мне нужно решить задачу моделирования, но не могу врубиться. нужен совет.а если кто приведет код, будет просто супер!
Итак, суть задачи: есть 3-х мерный массив из двух типов чисел - однерок(1) и шестерок(6). размерность массива [1000]. нужно сделать так, чтобы однерки и шестерки равномерно "перемешались" этом массиве. Мои соображения таковы: надо в цикле от 1 до 1000 рандомно взять один элемент массива, потом рандомно другой и поменять их функцией swap. Я правильно мыслю? или есть другой, более рациональный подход? помогите плз с кодом.. |
|||
|
||||
Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
что ты под этим понимаешь? лучше на примере (1000х1000х1000 не надо, 5х5х5 достаточно будет) 1) что за входные данные? 2) что хочешь получить? Добавлено через 2 минуты и 2 секунды
можно доктора защитить ![]() -------------------- |
||||
|
|||||
RokDemon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.5.2009 Репутация: нет Всего: нет |
ок. я пишу диплом просто. задачу моделирования постараюсь более развернуто объяснить. однерки и шестерки я ввел для примера...итак:
Магнит(образец) кубической формы условно разделили на 1000 кубиков который назван микрообъемом. Каждый микрообъем характеризуется параметром "коэрцитивная сила". Далее: 1)микрообъемы должны заметно различаться по этому параметру(коэрцитивная сила) 2)слабо и сильно коэрцитивные микрообъемы должны быть распределены равномерно по объему образца. Вопрос: какой нужен алгоритм для того чтобы получить магнит, в котором коэрцитивная сила у микрообъемов будет подобным образом распределена? и что значит 1-е условие, а именно: микрообъемы должны заметно различаться по этому параметру?это как? - например 1,2,3,4,5...100. или все же как два множества [1..5](слабые) и [8..10](сильные) ? Исходные данные? 3-х мерный массив с заданными значениями, нижняя половина одних чисел, верхняя других. это как бочка - нижняя половина меда, верхняя воды.надо перемешать. я так думаю, что надо в цикле от 1 до 1000 рандомно взять один элемент массива, потом рандомно другой, так сделать 1000 раз и поменять их функцией swap. Я правильно мыслю? или есть другой, более рациональный подход? если да, то как это можно закодить? |
|||
|
||||
Dmi3ev |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
вот это как раз и интересно, сколько единиц, а сколько шестерок...
потому как это можно понять по разному, вот допустим 0 - сильные 1 - слабые если у меня будет одномерный массив, я распределю так 01010101 если 2мерный, то 01010101 10101010 01010101 10101010 тупо через один, вполне равномерно ![]() несложно догадаться для 3мерного... это если 1 и 0 одинаковое количество, а если нет, то... вот я и спрашиваю, каким образом формируется этот кубик?
может у препода спросишь ![]() -------------------- |
||||||
|
|||||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
||||
|
||||
RokDemon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.5.2009 Репутация: нет Всего: нет |
J0ker,
у вас наверное нет высшего образования. я прав?) |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
чего вы хотели добиться этим постом? доказать, что вы самый умный? |
|||
|
||||
RokDemon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 10.5.2009 Репутация: нет Всего: нет |
Нет, всего лишь хотел показать что подобный юмор здесь неуместен.
Спасибо за помощь всем, кто хоть как то пытался мне помочь!!! |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
|
|||
|
||||
Dov |
|
||||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
Если это действительно так, и количество "однерок(1) и шестерок(6)" равное, то тебе ничего перемешивать не нужно. Нужно просто каждому элементу массива присвоить попеременно одно из двух значений и всё. Вот так, например:
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
||||
|
|||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
Dov, тоже так считаю, только код писать не стал, лень
![]() И думаю, что это вполне логично, единц, допустим 30Х30Х30, а шестерок 60Х60Х60, то тогда посложнее... -------------------- |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Это смотря для чего это нужно. Например, нужно сделать градиентую заливку из двух цветов - "однерок(1) и шестерок(6)", в вверху - "однерки(1)", внизу - "шестерки(6)", в середине - в перемежку. Если сделать регулярным способом, получится муар. |
|||
|
||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
math64
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
C/L |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 31.7.2004 Где: Самара Репутация: нет Всего: 1 |
Если всего кубиков 1000 то это по 10 на каждое измерение. А коэрцетивная сила это не дискретная величина, поэтому тип массива более правильно взять float или double, в зависимости от желаемой точности расчета. Типа так
А зачем мешать если можно сразу сгенерировать просто функцией random. Или если более точно то задаться средней коэрцетивной силой, среднеквадратичным отклонением и законом распределения (см. статистику) например нормальным. |
||||
|
|||||
C/L |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 31.7.2004 Где: Самара Репутация: нет Всего: 1 |
Кроме этого в 3D коэрцетивная сила даже не скалярная, а векторная величина, поэтому для типа массива более правильно взять структуру из 3 float или double
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |