Текущее время: Сб 16 ноя 2024 2:53

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 848 ]  На страницу Пред.  1 ... 14, 15, 16, 17, 18, 19, 20 ... 29  След.
Автор Сообщение
 Сообщение Пн 17 ноя 2008 16:23
Профиль  
Ограничитель
Аватара пользователя
Сообщения: 7028
Откуда: От верблюда!
Зарегистрирован: Ср 11 май 2005 9:48
Нашёл интересную задачу по программированию:

Разработать имитационную модель системы “хищник–жертва” по следующей схеме.
“Остров” размером 20 на 20 заселен дикими кроликами, волками и волчицами. Имеется по нескольку представителей каждого вида. Кролики в каждый момент времени с одинаковой вероятностью 1/9 передвигаются в один из восьми соседних квадратов (за исключением участков, ограниченных береговой линией) или просто сидят неподвижно. Каждый кролик с вероятностью 0,2 превращается в двух кроликов. Каждая волчица передвигается случайным образом, пока в одном из соседних восьми квадратов не окажется кролик, за которым она охотится. Если волчица и кролик оказываются в одном квадрате, волчица съедает кролика и получает одно очко. В противном случае она теряет 0,1 очка.
Волки и волчицы с нулевым количеством очков умирают.
В начальный момент времени все волки и волчицы имеют 1 очко.
Волк ведет себя подобно волчице до тех пор, пока в соседних квадратах не исчезнут все кролики; тогда, если волчица находится в одном из восьми близлежащих квадратов, волк гонится за ней.
Если волк и волчица окажутся в одном квадрате и там нет кролика, которого нужно съесть, они производят потомство случайного пола.
Задание: понаблюдать за изменением популяции в течение некоторого периода времени. Проследить, как сказываются на эволюции популяций изменения параметров модели.

:smile:

_________________
Земля, Земля - я Юпитер!
Зарисовка в стиле AIM - https://www.youtube.com/watch?v=JiWtIz9g3Uw


 Сообщение Вт 18 ноя 2008 1:54
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
1: Можно ли считать, что при попытке выйти за берег животное остается в той же клеткой?
2: Кролик "раздваивается" в одной клетке или при переходе?
3: Считается ли нулевая секунда ходом?
4: В начале допустимо размещение нескольких животных (в том числе, одновременно кролика и волка) в одной клетке?


 Сообщение Вт 18 ноя 2008 5:32
Профиль  
Ограничитель
Аватара пользователя
Сообщения: 7028
Откуда: От верблюда!
Зарегистрирован: Ср 11 май 2005 9:48
Вообще, задачу не я составлял и не мне её объясняли, но отвечу:

Цитата:
1: Можно ли считать, что при попытке выйти за берег животное остается в той же клеткой?

Нет. Просто остаётся меньше клеток для перемещения. И, соответственно, вероятность перемещения увеличивается.
Krogoth писал(а):
2: Кролик "раздваивается" в одной клетке или при переходе?

Кролик раздвоится может в любой момент. Короме того, когда его схавоют. :smile:
Krogoth писал(а):
4: В начале допустимо размещение нескольких животных (в том числе, одновременно кролика и волка) в одной клетке?

Я так понимаю, что допустимо. Я так думаю, что изначально должно быь 10 кроликов, 5 волков и 5 волчиц. Или около того. :smile:
Krogoth писал(а):
3: Считается ли нулевая секунда ходом?

Нет, наверно.

Добавлено спустя 31 секунду:

Могу дать ссылку, где я эту вещь взял (но там есть решение).

_________________
Земля, Земля - я Юпитер!
Зарисовка в стиле AIM - https://www.youtube.com/watch?v=JiWtIz9g3Uw


 Сообщение Вт 18 ноя 2008 14:32
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
2 Микс
Не, решение не надо.
Я пока склепал программку, но численность волков пока что постоянная. Оказалось, что для регулирования численности 10 кроликов необходимо не менее 100 волков+волчиц. :mrgreen:


 Сообщение Вт 18 ноя 2008 16:35
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
2 Krogoth
Какой-то странный у тебя результат, имхо. Хотя, интересно, как там в реале?


 Сообщение Вс 29 мар 2009 7:08
Профиль  
Механоид 5 поколения
Аватара пользователя
Сообщения: 1260
Откуда: island Syberia
Зарегистрирован: Ср 10 янв 2007 9:14
Дуст писал(а):
Сделать формулу конуса. Ну то есть чтобы комп... ну, например, в Паскале или любом другом языке построил вам клевую трехмерную модель конуса. Можно без заливки, достаточно отображения в виде сетки

Тут все просто, что есть конус? Конус есть фигура вращения. Если брать тело, то это вращение прямоугольного треугольника вокруг одного из катетов. Если поверхность, то сойдет и отрезок, один конец которого закреплен, а другой движется по кругу.

_________________
_=S.A.L.K.E.R.=_
"Кто кого еще порвет" - сказала Тузику грелка, надутая до 10 атмосфер
"У нас большие леса. Они способны без остатка поглотить любое воинское формирование" (с)


 Сообщение Вс 29 мар 2009 10:24
Профиль  
Моск
Сообщения: 3726
Откуда: На пограничье двух миров.
Зарегистрирован: Вс 20 авг 2006 13:24
Нужна именно трехмерная функция, при построении которой выходит конус. Как я понял, конечно.


 Сообщение Вс 29 мар 2009 10:35
Профиль  
Механоид 5 поколения
Аватара пользователя
Сообщения: 1260
Откуда: island Syberia
Зарегистрирован: Ср 10 янв 2007 9:14
Когда Дуст сказал "Паскаль", я запустил оставшийся еще со школы компиллер и написал несколько процедур и функций, рисующих трехмерный конус.
То есть первой стала процедура перевода 3D в 2D, затем рисование линии в трехмерном пространстве, а затем и сам конус.
В цикле вычисляю точку на окружности и провожу туда линию, делаю шаг и вновь вычисляю точку. Конус таким образом получается.

_________________
_=S.A.L.K.E.R.=_
"Кто кого еще порвет" - сказала Тузику грелка, надутая до 10 атмосфер
"У нас большие леса. Они способны без остатка поглотить любое воинское формирование" (с)


 Сообщение Чт 25 июн 2009 1:18
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Вот задался вопросом: как проводить операции над очень-очень крупными числами?
А именно задача такая: у нас есть число, которое выражается 10 цифрами. Нам необходимо преобразовать его в такое, которое можно выразить через n цифр, т.е. перевод в другую систему исчисления. Для небольших чисел (до 10 цифр) я сделал, это очень просто. А вот для больших? Скажем, число 34681093675832678437028435716-347601836751083.
Буду думать, как обойтись без делений и прочего, но это вряд ли...


 Сообщение Чт 25 июн 2009 1:26
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Ну, длинную арифметику, я полагаю, ты уже сделал. А дальше - по старой схеме - делим на основание системы счисления, получая циферки по-одной. По-другому, я думаю, никак. Хотя, можно получать любую заданную цифру в новой системе, деля на основание, возведенное в соответствующую степень. Таким образом можно, например, оптимизировать вывод, переводить только наиболее значащие разряды числа, так как все разряды все равно не нужны.


 Сообщение Чт 25 июн 2009 1:50
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Пока вот такое.
Мне чисто ради любопытства, интересно, какие числа получаться будут. :smile:

Добавлено спустя 2 минуты 10 секунд:

Razum писал(а):
А дальше - по старой схеме - делим на основание системы счисления, получая циферки по-одной. По-другому, я думаю, никак. Хотя, можно получать любую заданную цифру в новой системе, деля на основание, возведенное в соответствующую степень. Таким образом можно, например, оптимизировать вывод, переводить только наиболее значащие разряды числа, так как все разряды все равно не нужны.
Это да, но, чувствую, все-равно с большими числами не прокатит. :neutral:
Надо что-то радикальное, я не знаю что... Можно приспособиться к расчетам больших чисел, но вот как обойтись без них...

Добавлено спустя 11 минут 57 секунд:

Ах да, процесс тока в одну сторону...
Потом наоборот сделаю.


 Сообщение Чт 25 июн 2009 1:56
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Razum писал(а):
оптимизировать вывод

Хотя черт его знает, насколько оно оптимальней выйдет. Если мы получаем циферку разряда (например n-ную) обычным способом, то нам нужно произвести n делений, а если мы ее получаем, не интересуясь другими циферками, то нам нужно сначала сделать возведение в n-1 -ую степень, потом два деления. Возведение в простейшем случае предполагает n-2 умножения. Таким образом, оптимизация получится только в том случае, если умножение сильно быстрее работает.
Если в нашей длинной арифметике умножение и деление производятся "столбиком" из школьной программы, то при умножении n-значного числа на n-значное будет произведено порядка n^2 "простых" (т.е. тех, что не требуют участия "длинной" арифметики) умножений, n^2 "простых" сложений и n сложных сложений (которые требуют участия длинно-арифметического сложения).
Деление столбиком... Че-то я об этом еще не задумывался никогда. Когда я на паскалине делал калькулятор с длинной арифметикой, у меня там рассматривались только вещественные числа, и "настоящего" деления не было. Заместо деления выполнялась операция умножения на обратное число. То-есть, когда надо делить на х, выполнялось умножение на 1/х. А настоящее было только деление единицы на любое число... Что-то уже не помню, как я его делал...

Добавлено спустя 59 секунд:

Цитата:
Это да, но, чувствую, все-равно с большими числами не прокатит.

А в чем принципиальное отличие больших чисел от маленьких?


 Сообщение Чт 25 июн 2009 2:19
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
В том, что это может быть долго, и у целочисленных маленький диапазон, и мне влом свой тип фигачить. :mrgreen:
Вообще, так и придется, если альтернативы не будет.

Добавлено спустя 4 минуты 27 секунд:

Я вот что планирую...
Прогнать очень большие числа и посмотреть, как они будут выглядеть.
Например, я взял обычное 9-значное и получил 5-значное, используя все арабские цифры и буквы английского алфавита (как маленькие, так и большие).
А вот если поэкспериментировать с еще большими или, например, с константами какими...


 Сообщение Чт 25 июн 2009 9:27
Профиль  
Ограничитель
Аватара пользователя
Сообщения: 7028
Откуда: От верблюда!
Зарегистрирован: Ср 11 май 2005 9:48
Хорошая прога. В 16тиричную переводит корректно. :smile:
А с большими числами никаких проблем не должно быть. Тип Int64 рулит! :wink: Если и его не хватет...
Можно запихать всё это дело в строку и сделать свой "делитель". :smile:

_________________
Земля, Земля - я Юпитер!
Зарисовка в стиле AIM - https://www.youtube.com/watch?v=JiWtIz9g3Uw


 Сообщение Чт 25 июн 2009 17:38
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Что-то оно игнорирует мой Int64. :neutral:
У меня там массив, может, что-то ему не понравилось...
Вообще, есть еще один метод...


 Сообщение Пт 9 окт 2009 18:28
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Вот заданьице. (Только что с лицейской олимпиады)
Код:
Найти все решения уравнения sin(x+sinx)=cos(x+cosx) на отрезке [0; pi/2].
Мучался очень долго. Мутил с арксинусами, арккосинусами и пр. ерундой, в итоге получил, что корней нет. (Очень вероятно, что решал я неправильно) Может, кто-то знает, как решать такое?


 Сообщение Пт 9 окт 2009 20:18
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
2 Krogoth
Значит так, я так решил замонстрячить:
1) К аргументу косинуса добавляем и вычитаем П/2
2) После этого у нас правый косинус(объемлющий) превращается в синус с аргументом x+cosx+П/2
3) Далее рассматриваем два варианта:
_а)x + sinx = x + cosx +П/2 (решений нет, вроде бы)
_b)(x + sinx) + (x + cosx + П/2) = П

Добавлено спустя 39 минут 5 секунд:

Хинт: В последнем уравнении x + cosx можно заменить на -x - cosx, тогда иксы сократятся.


 Сообщение Пт 9 окт 2009 20:51
Профиль  
Механоид 2 поколения
Аватара пользователя
Сообщения: 227
Откуда: Москва
Зарегистрирован: Пт 26 дек 2008 18:49
Вот у меня тоже одна задачка:
Тело подбросили вверх со скоростью Vо, найдите среднюю скорость тела на второй половине пути подъёма тела.

_________________
Особая, Бауманская магия.


 Сообщение Пт 9 окт 2009 21:00
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Razum писал(а):
_а)x + sinx = x + cosx +П/2 (решений нет, вроде бы)
Здесь у меня тоже.
Razum писал(а):
_b)(x + sinx) + (x + cosx + П/2) = П
А здесь как? Я не совсем понял, как надо сделать замену. А в итоге корни у тебя какие-нибудь получились?


Последний раз редактировалось Krogoth Пт 9 окт 2009 21:01, всего редактировалось 1 раз.

 Сообщение Пт 9 окт 2009 21:02
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Хинт: Предыдущий хинт - шляпа, он ровным счетом ничего не меняет, я ошибся...

Добавлено спустя 1 минуту 9 секунд:

Krogoth писал(а):
А здесь как? Я не совсем понял, как надо сделать замену.

Это я сейчас думаю, сходу сразу не решается, однако при помощи графопостроителя выяснено, что решение есть, оно единственно, и это именно то, что нужно.


 Сообщение Пт 9 окт 2009 21:04
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Razum писал(а):
Хинт: Предыдущий хинт - шляпа, он ровным счетом ничего не меняет, я ошибся...
Когда меня завели в такой тупик, я как за-а-афига-ачил производную! На ровном месте. И там у меня такая ерунда получилась, что мне тоже показалось, что решений нет. Хотя я не знаю, в тему ли тут дифференцирование или нет. (Диффуры мы еще не проходили)


 Сообщение Пт 9 окт 2009 21:05
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Вообще, в википедии есть формула, позволяющая сумму синуса и косинуса заменить на один синус(или косинус) со сложносочиненным аргументом.

Добавлено спустя 1 минуту 13 секунд:

Цитата:
Когда меня завели в такой тупик, я как за-а-афига-ачил производную! На ровном месте. И там у меня такая ерунда получилась, что мне тоже показалось, что решений нет. Хотя я не знаю, в тему ли тут дифференцирование или нет. (Диффуры мы еще не проходили)

Да не, если применить этот хинт, решение будет(то же самое решение) в случае а), а в случае б) не будет решений.


 Сообщение Пт 9 окт 2009 21:06
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Ага, я-то эту формулу не знаю. Знал бы, может, что-то и получилось бы... Ну, может, хоть треть баллов накинут. :mrgreen:


 Сообщение Пт 9 окт 2009 21:17
Профиль  
#105d99
Аватара пользователя
Сообщения: 15233
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
Может, разложить 2х в ряд Фурье по синусам и косинусам?

Добавлено спустя 2 минуты 11 секунд:

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

Добавлено спустя 5 минут 56 секунд:

Короче, порочный какой-то метод выходит... Может, че другое надо придумать? Например, сначала доказываем, что решение исходного уравнения единственно, после чего тупо угадываем его.


 Сообщение Пт 9 окт 2009 21:48
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Pingvin писал(а):
Вот у меня тоже одна задачка:
Тело подбросили вверх со скоростью Vо, найдите среднюю скорость тела на второй половине пути подъёма тела.
Способов много. Например, такой.

Пусть H - высота подъема, h - ее половина, t - время движения от h до H, u - начальная скорость на этом отрезке.
V<sub>ср.</sub> = h/t. (1)
H = (-V<sub>0</sub><sup>2</sup>)/(-2g) = V<sub>0</sub><sup>2</sup>/2g.
h = H/2 = V<sub>0</sub><sup>2</sup>/4g. (2)
h = u/2*t => h/t = u/2. (3)
Составим закон сохранения энергии для начального и положения тела на h.
mV<sub>0</sub><sup>2</sup>/2 = mgh + mu<sup>2</sup>/2 => u = sqrt(V<sub>0</sub><sup>2</sup> - 2gh). (4)
(2)->(4):
u = sqrt(V<sub>0</sub><sup>2</sup> - V<sub>0</sub><sup>2</sup>/2) = V<sub>0</sub>/sqrt(2). (4')
(4')->(3):
h/t = V<sub>0</sub>/2sqrt(2). (3')
(1)=(3'):
V<sub>ср.</sub> = V<sub>0</sub>/2sqrt(2). (1')

Добавлено спустя 1 минуту 31 секунду:

2 Razum
Плохо, что корень есть. Лучше б его не было. =) Завтра подумаю, может, осенит что ли...


 Сообщение Пт 9 окт 2009 22:04
Профиль  
Механоид 2 поколения
Аватара пользователя
Сообщения: 227
Откуда: Москва
Зарегистрирован: Пт 26 дек 2008 18:49
2 Krogoth
Я решал по другому, вообще не касаясь закон сохранения энергии. Ответ похож. Но вроде скорость ещё зависит от g. :hm:

_________________
Особая, Бауманская магия.


 Сообщение Пт 9 окт 2009 22:06
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Pingvin писал(а):
Но вроде скорость ещё зависит от g.
Как?


 Сообщение Пт 9 окт 2009 22:11
Профиль  
Механоид 2 поколения
Аватара пользователя
Сообщения: 227
Откуда: Москва
Зарегистрирован: Пт 26 дек 2008 18:49
пишем уравнение движения:
y(t)=Vо*t-g*t2/2
V(t)=Vо-g*t

через них находим расстояния и время и подставляем в
Vср. = h/t

_________________
Особая, Бауманская магия.


 Сообщение Пт 9 окт 2009 22:18
Профиль  
Скриптизёр
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
И h, и t выражаются через g, следовательно, g сокращается. В данной задаче g не может не сократиться, потому что у тебя не дано величин в секундах.


 Сообщение Пт 9 окт 2009 22:24
Профиль  
Механоид 2 поколения
Аватара пользователя
Сообщения: 227
Откуда: Москва
Зарегистрирован: Пт 26 дек 2008 18:49
А, пардон, наврал в одном месте. Но всё же решение без закона сохранения будет проще...

_________________
Особая, Бауманская магия.


Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 848 ]  На страницу Пред.  1 ... 14, 15, 16, 17, 18, 19, 20 ... 29  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB