Вверх ↑
Этот топик читают: Гость
Ответов: 574
Рейтинг: 1
#1: 2007-09-14 19:26:59 ЛС | профиль | цитата
Ребята, выручайте! Дали задание по программированию до завтра, а мы его с 4ым курсом даже сделать не можем! 4 курс в нашем колледже - последний. 3 часа решали... Я - третий курс.

Если сможете, подскажите как его сделать! Буду рад даже формуле! А больше рад буду коду pas или cpp ;) Условие прилагаю в архиве.

Преподаватель сказал, что тут нужно применить численные методы... А мы их только на этом курсе начнём изучать...

Заранее огромное спасибо!
карма: 0

0
файлы: 1Uslovie.rar [2.3KB] [348]
vip
#1.1контекстная реклама от партнеров
Ответов: 9906
Рейтинг: 351
#2: 2007-09-14 20:15:30 ЛС | профиль | цитата
Yuriy писал(а):
4 курс в нашем колледже - последний. 3 часа решали

Мда...
А мы, в свое время, на 3-м курсе занимались моделированием 4-Пи рождения...
Почти тоже самое, только фазовое пространство 8-мерное...

Иные времена, иные нравы
карма: 9

0
Ответов: 5446
Рейтинг: 323
#3: 2007-09-14 20:28:54 ЛС | профиль | цитата
Yuriy, численно фиг знает, как это решать, но можно попробовать аналитически, исходя из того, что наиболее удалённая от "центра" куба точка - это его вершина (любая).

Из условия ясно, что число узлов вдоль любой грани нечётно. Вспоминая школьный курс стереометрии, получаем нехитрое соотношение: R = n*Sqrt(3), где (2n - 1) - длина грани куба, совападающая в данном случае с числом узлов вдоль этой грани. Легко показать, что число узлов для кубической решётки, число узлов вдоль грани которой равно k, равно k^3.
карма: 1

0
Ответов: 5446
Рейтинг: 323
#4: 2007-09-14 20:41:50 ЛС | профиль | цитата
Замечания:
1а) Так как в условии ничего не сказано, считаем, что центры куба и сферы совпадают (иначе при данном R решение не единственно)
1б) ни один узел куба не выходит за границу шара (я думаю, это и имелось в виду под "самый удалённый от центра узел может находиться на расстоянии, не большем R")
1в) под "размером ячейки" я понимаю её линейный размер
2) минимальное n = 2, что соответствует радиусу R ~= 3.5
3) ответ, приведённый в задаче для R=1 не имеет смысла (точнее, там должен быть 0), так как решётку с размером ячейки 1 нникак не впишешь в шар радиуса 1.
карма: 1

0
Ответов: 9906
Рейтинг: 351
#5: 2007-09-14 20:53:50 ЛС | профиль | цитата
code_1919.txt
карма: 9

0
файлы: 1code_1919.txt [2.1KB] [298]
Ответов: 1397
Рейтинг: 50
#6: 2007-09-14 21:28:52 ЛС | профиль | цитата
Меньше 40 минут понадобилось!
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 9906
Рейтинг: 351
#7: 2007-09-14 21:33:50 ЛС | профиль | цитата
Обижаешь...
На это - даже в репе чесать нет необходимости

Еще ведь и поужинать надо было, увидеть какие-то странные напряги...
карма: 9

0
Ответов: 574
Рейтинг: 1
#8: 2007-09-14 22:29:54 ЛС | профиль | цитата
Galkov писал(а):
code_1919.txt


Я уже давно убедился, Владимир, что гениальнее тебя человека не найти Огромное спасибо!

Однако, если ввести 799 (по условию можно) - программа зависнет...
карма: 0

0
Ответов: 9906
Рейтинг: 351
#9: 2007-09-14 22:35:53 ЛС | профиль | цитата
Это называется - "проклятие размерностей"
карма: 9

0
Ответов: 2125
Рейтинг: 159
#10: 2007-09-14 22:44:52 ЛС | профиль | цитата
Galkov, дык нафига вписанный куб в цикле считать? Оптимизировать надо. Размышляя рекурсивно можно очень даже оптимальный алгоритм придумать К тому-же фигура-то симметричная - достаточно в одном направлении потом внутренности выкусывать (толщиной в еденицу, аналогичная задача, но двухмерная) и количество умножать на 6.
карма: 1

0
Ответов: 574
Рейтинг: 1
#11: 2007-09-14 22:45:05 ЛС | профиль | цитата
И ничего с этим не поделаешь?
карма: 0

0
Ответов: 2125
Рейтинг: 159
#12: 2007-09-14 23:04:30 ЛС | профиль | цитата
Yuriy писал(а):
И ничего с этим не поделаешь?

Ты ещё не понял, что-ли?
Представь, шар разбили параллельными плоскостями, на которых лежат узлы. Получили аналогичную задачу, но двухмерную. Точно также - окружности разбиваются параллельными прямыми, на которых лежат узлы, и которые посчитать нужно. Формулы из 7-го класса

[size=-2]------ Добавлено в 23:04
Вобщем формулы тут нужны две: радиус сечения шара, и длина хорды.
карма: 1

0
Ответов: 9906
Рейтинг: 351
#13: 2007-09-14 23:06:23 ЛС | профиль | цитата
tsdima, дык нафиг мне заниматься оптимизацией для задачи подсчета точек в шаре.

Кстати, я со смыслом упоминул свою детскую задачу, и что фазовое пространство у нее 8-ми мерное.
Сеточным методам, большой кердык - по определению
карма: 9

0
Ответов: 574
Рейтинг: 1
#14: 2007-09-14 23:21:34 ЛС | профиль | цитата
tsdima писал(а):
Ты ещё не понял, что-ли?
Представь, шар разбили параллельными плоскостями, на которых лежат узлы. Получили аналогичную задачу, но двухмерную. Точно также - окружности разбиваются параллельными прямыми, на которых лежат узлы, и которые посчитать нужно. Формулы из 7-го класса


Спасибо за разъяснения. Вот потому мы 3 часа и сидели, что знаний в математике у нас не так много, как у тебя, скажем, или Galkov'а. В этой задаче математика сплошная...

Ребят... Я конечно наглею, но можно попросить с ещё одной помочь задачей? Вроде ничего особенного, а вот всё равно универсальный алгоритм придумать не можем... Приложил в attach. Огромное спасибо за помощь!
карма: 0

0
файлы: 1Uslovie2.rar [2.4KB] [352]
Ответов: 2125
Рейтинг: 159
#15: 2007-09-15 03:23:42 ЛС | профиль | цитата
Yuriy, вот тебе, элегантное, на мой взгляд, решение первой задачи:
function MyFunc(r:real; n:integer):integer;
var i:integer;
begin
if n<=1 then
Result:=1+2*trunc(r)
else begin
Result:=MyFunc(r,n-1);
for i:=1 to trunc(r) do Result:=Result+2*MyFunc(sqrt(sqr(r)-sqr(i)),n-1);
end;
end;
где r - радиус, n - число измерений (для шара 3)

Насчёт второй задачи - это надо полный перебор делать.
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)