[Logo] Форум DL
  [DL]  Back to home page 
Forum Index ->Олимпиадное программирование ->Обсуждение Sphere-задач
Author Message
Ruslan Korzhik

Topics: 14
Messages: 86

My Profile
Было бы интересно узнать, как эту задачу решать. Год назад пытался вывести формулу, но так ничего и не получилось.
Краткое условие:
узнать объем пирамиды по длинам ребер.

Mihail Dolinskiy (Online)

Topics: 1562
Messages: 38195

My Profile
Руслан а про пирамиду ничего больше неизвестно?
Сколькоугольная? Прямая/наклонная?
Ruslan Korzhik

Topics: 14
Messages: 86

My Profile
Точно не знаю, как ее назвать, наверное, шестигранная. Даны длины шести ребер.
Gennadiy Korotkevich

Topics: 6
Messages: 37

My Profile
На самом деле эта пирамида есть тетраэдр - состоит из четырех треугольников. В ней как раз шесть ребер.
______________________
Nothing is impossible; impossible itself says: "I m possible"...
Ruslan Korzhik

Topics: 14
Messages: 86

My Profile
Тэтраэдр это кажется немного другое.
Вырезка с сайта http://tmn.fio.ru/works/22x/307/tetr_kub.htm

Тетраэдр принадлежит к семейству платоновых тел, то есть правильных выпуклых многогранников. Тетраэдр - простейший многогранник, его гранями являются четыре равносторонних треугольника. Несмотря на свою простоту, тетраэдр - полноправный представитель семейства платоновых тел. Все его грани - одинаковые правильные многоугольники, все его многогранные углы равны.
 

А как ее все-таки решать(хотя бы в двух словах)?
http://www.spoj.pl/status/PIR,tourist/
Gennadiy Korotkevich

Topics: 6
Messages: 37

My Profile
Нет, это именно тетраэдр - пирамида, гранями которой являются треугольники (все-таки я эту задачу решил ).
А все решение - это формула, которую я нашел в интернете - завтра могу поискать ссылку.

______________________
Nothing is impossible; impossible itself says: "I m possible"...
Ruslan Korzhik

Topics: 14
Messages: 86

My Profile
А у тетраэдра все ребра не должны быть одинаковыми?
Ruslan Korzhik

Topics: 14
Messages: 86

My Profile


101895:

Точно не знаю, как ее назвать, наверное, шестигранная. Даны длины шести ребер.  

Только что заметил, что неправильно написал. Правильно шестиреберная, а не шестигранная
Mihail Dolinskiy (Online)

Topics: 1562
Messages: 38195

My Profile
Я предлагаю не мусорить в форуме.
1) Гена обещал формулу - ее нет до сих пор.
2) Руслан прав с точки зрения математики.
Gennadiy Korotkevich

Topics: 6
Messages: 37

My Profile
Хорошо, тогда это будет четырехгранник

А вместо формулы лучше вставлю текст программы на C:

 #include <stdio.h>
#include <math.h>
int main() {
  long t,q;
  long double s,r1,r2,r3,r4,a,b,c,d,e,f;
  scanf("%ld",&t);
  for (q=0;q<t;q++) {
    scanf("%Lf%Lf%Lf%Lf%Lf%Lf",&a,&b,&c,&d,&e,&f);
    r1=a*a*f*f*(b*b+c*c+d*d+e*e-a*a-f*f);
    r2=b*b*e*e*(a*a+c*c+d*d+f*f-b*b-e*e);
    r3=c*c*d*d*(a*a+b*b+f*f+e*e-c*c-d*d);
    r4=a*a*b*b*d*d+b*b*c*c*f*f+a*a*c*c*e*e+d*d*f*f*e*e;
    s=(r1-r4+r2+r3)/144;
    s=sqrtl(fabsl(s));
    printf("%.4Lf\n",s);
  }
  return 0;
}
Эквивалент на Паскале почему-то не работает

______________________
Nothing is impossible; impossible itself says: "I m possible"...
Ruslan Korzhik

Topics: 14
Messages: 86

My Profile
Спасибо, большое.
Я кажется придумал как эту формулу можно вывести. Хотя сам не пробовал. Но идея заключается в смешанном произведении abc. a,b,c вектора.
abc=a(axc) кажется так.
Mihail Dolinskiy (Online)

Topics: 1562
Messages: 38195

My Profile
А у меня еще был вопрос. Можно ли использовать для этой (такой - определение объема/площади сложной фигуры) задачи метод Монте-Карло? (считая количество попаданий случайно выбранных точек внутрь заданного тела/фигуры и деля на все точки в простом "объемлющем теле(куб?)/фигуре).

А то такую формулу за 5 часов вывести может и непросто ...

Ruslan Korzhik

Topics: 14
Messages: 86

My Profile
В этой задаче слишком большие ограничения для МК. И определение попала точка или нет тоже не простая задача.
Aleksandr Vorobyov

Topics: 1
Messages: 11

My Profile
А вот составители ЦТ года 4-5 назад считали что абитуриенты смогут вывести формулу, а если я не ошибаюсь, то ЦТ длится где-то 150 мин (такая задача была в ЦТ в Б части)
Решить её можно следующим образом (пусть вершины пирамиды будут называться так A,B,C,D):
Введем декартову систему координат. Положим точку А в начало координат (0,0,0), В на ось х с координатами (AB, 0,0), С на плоскость YОХ, а точку D где-то в пространстве (желательно это сделать так чтобы все координаты были положительные), то объем можно вычислить как (Cx*By*Dz)/6, теперь с помощью двух систем уравнений можно найти эти координаты (используя формулу вычисления расстояние в пространстве и на плоскости).
 
Forum Index ->Олимпиадное программирование ->Обсуждение Sphere-задач
Time:0,094