Ребята, выручайте! Дали задание по программированию до завтра, а мы его с 4ым курсом даже сделать не можем! 4 курс в нашем колледже - последний. 3 часа решали... Я - третий курс.
Если сможете, подскажите как его сделать! Буду рад даже формуле! А больше рад буду коду pas или cpp ;) Условие прилагаю в архиве.
Преподаватель сказал, что тут нужно применить численные методы... А мы их только на этом курсе начнём изучать...
Заранее огромное спасибо!
Этот топик читают: Гость
Ответов: 574
Рейтинг: 1
|
|||
карма: 0 |
| ||
файлы: 1 | Uslovie.rar [2.3KB] [392] |
Ответов: 9906
Рейтинг: 351
|
|||
Yuriy писал(а): 4 курс в нашем колледже - последний. 3 часа решалиМда... А мы, в свое время, на 3-м курсе занимались моделированием 4-Пи рождения... Почти тоже самое, только фазовое пространство 8-мерное... Иные времена, иные нравы |
|||
карма: 9 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Yuriy, численно фиг знает, как это решать, но можно попробовать аналитически, исходя из того, что наиболее удалённая от "центра" куба точка - это его вершина (любая).
Из условия ясно, что число узлов вдоль любой грани нечётно. Вспоминая школьный курс стереометрии, получаем нехитрое соотношение: R = n*Sqrt(3), где (2n - 1) - длина грани куба, совападающая в данном случае с числом узлов вдоль этой грани. Легко показать, что число узлов для кубической решётки, число узлов вдоль грани которой равно k, равно k^3. |
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Замечания:
1а) Так как в условии ничего не сказано, считаем, что центры куба и сферы совпадают (иначе при данном R решение не единственно) 1б) ни один узел куба не выходит за границу шара (я думаю, это и имелось в виду под "самый удалённый от центра узел может находиться на расстоянии, не большем R") 1в) под "размером ячейки" я понимаю её линейный размер 2) минимальное n = 2, что соответствует радиусу R ~= 3.5 3) ответ, приведённый в задаче для R=1 не имеет смысла (точнее, там должен быть 0), так как решётку с размером ячейки 1 нникак не впишешь в шар радиуса 1. |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
code_1919.txt
|
|||
карма: 9 |
| ||
файлы: 1 | code_1919.txt [2.1KB] [351] |
Ответов: 1397
Рейтинг: 50
|
|||
Меньше 40 минут понадобилось!
|
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Обижаешь...
На это - даже в репе чесать нет необходимости Еще ведь и поужинать надо было, увидеть какие-то странные напряги... |
|||
карма: 9 |
|
Ответов: 574
Рейтинг: 1
|
|||
Galkov писал(а): code_1919.txtЯ уже давно убедился, Владимир, что гениальнее тебя человека не найти Огромное спасибо! Однако, если ввести 799 (по условию можно) - программа зависнет... |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Это называется - "проклятие размерностей"
|
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Galkov, дык нафига вписанный куб в цикле считать? Оптимизировать надо. Размышляя рекурсивно можно очень даже оптимальный алгоритм придумать К тому-же фигура-то симметричная - достаточно в одном направлении потом внутренности выкусывать (толщиной в еденицу, аналогичная задача, но двухмерная) и количество умножать на 6.
|
|||
карма: 1 |
|
Ответов: 574
Рейтинг: 1
|
|||
И ничего с этим не поделаешь?
|
|||
карма: 0 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Yuriy писал(а): И ничего с этим не поделаешь?Ты ещё не понял, что-ли? Представь, шар разбили параллельными плоскостями, на которых лежат узлы. Получили аналогичную задачу, но двухмерную. Точно также - окружности разбиваются параллельными прямыми, на которых лежат узлы, и которые посчитать нужно. Формулы из 7-го класса [size=-2]------ Добавлено в 23:04 Вобщем формулы тут нужны две: радиус сечения шара, и длина хорды. |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
tsdima, дык нафиг мне заниматься оптимизацией для задачи подсчета точек в шаре.
Кстати, я со смыслом упоминул свою детскую задачу, и что фазовое пространство у нее 8-ми мерное. Сеточным методам, большой кердык - по определению |
|||
карма: 9 |
|
Ответов: 574
Рейтинг: 1
|
|||
tsdima писал(а): Ты ещё не понял, что-ли?
Представь, шар разбили параллельными плоскостями, на которых лежат узлы. Получили аналогичную задачу, но двухмерную. Точно также - окружности разбиваются параллельными прямыми, на которых лежат узлы, и которые посчитать нужно. Формулы из 7-го класса Спасибо за разъяснения. Вот потому мы 3 часа и сидели, что знаний в математике у нас не так много, как у тебя, скажем, или Galkov'а. В этой задаче математика сплошная... Ребят... Я конечно наглею, но можно попросить с ещё одной помочь задачей? Вроде ничего особенного, а вот всё равно универсальный алгоритм придумать не можем... Приложил в attach. Огромное спасибо за помощь! |
|||
карма: 0 |
| ||
файлы: 1 | Uslovie2.rar [2.4KB] [397] |
Ответов: 2125
Рейтинг: 159
|
|||
Yuriy, вот тебе, элегантное, на мой взгляд, решение первой задачи:
Насчёт второй задачи - это надо полный перебор делать. |
|||
карма: 1 |
|