- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
for i:= 1 to 24 do read (a[i]);
if (abs(sqrt ((a[1]-a[4])*(a[1]-a[4])+(a[2]-a[5])*(a[2]-a[5])+(a[3]-a[6])*(a[3]-a[6]))) = abs(sqrt ((a[4]-a[7])*(a[4]-a[7])+(a[5]-a[8])*(a[5]-a[8])+(a[6]-a[9])*(a[6]-a[9]))) and
(abs(sqrt ((a[4]-a[7])*(a[4]-a[7])+(a[5]-a[8])*(a[5]-a[8])+(a[6]-a[9])*(a[6]-a[9]))) =abs(sqrt ((a[7]-a[10])*(a[7]-a[10])+(a[8]-a[11])*(a[8]-a[11])+(a[9]-a[12])*(a[9]-a[12]))) and
(abs(sqrt ((a[7]-a[10])*(a[7]-a[10])+(a[8]-a[11])*(a[8]-a[11])+(a[9]-a[12])*(a[9]-a[12]))) =abs(sqrt ((a[10]-a[1])*(a[10]-a[1])+(a[11]-a[2])*(a[11]-a[2])+(a[12]-a[3])*(a[12]-a[3])))and
(abs(sqrt ((a[13]-a[16])*(a[13]-a[16])+(a[14]-a[17])*(a[14]-a[17])+(a[15]-a[18])*(a[15]-a[18]))) = abs(sqrt ((a[13]-a[16])*(a[13]-a[16])+(a[14]-a[17])*(a[14]-a[17])+(a[15]-a[18])*(a[15]-a[18]))) and
(abs(sqrt ((a[13]-a[16])*(a[13]-a[16])+(a[14]-a[17])*(a[14]-a[17])+(a[15]-a[18])*(a[15]-a[18]))) =abs(sqrt ((a[16]-a[19])*(a[16]-a[19])+(a[17]-a[20])*(a[17]-a[20])+(a[18]-a[21])*(a[18]-a[21]))) and
(abs(sqrt ((a[16]-a[19])*(a[16]-a[19])+(a[17]-a[20])*(a[17]-a[20])+(a[18]-a[21])*(a[18]-a[21]))) =abs (sqrt ((a[19]-a[22])*(a[19]-a[22])+(a[20]-a[23])*(a[20]-a[23])+(a[21]-a[24])*(a[21]-a[24]))) and
(abs(sqrt ((a[19]-a[22])*(a[19]-a[22])+(a[20]-a[23])*(a[20]-a[23])+(a[21]-a[24])*(a[21]-a[24]))) =abs(sqrt ((a[22]-a[13])*(a[22]-a[13])+(a[23]-a[14])*(a[23]-a[14])+(a[24]-a[15])*(a[24]-a[15]))) and
(abs(sqrt ((a[22]-a[13])*(a[22]-a[13])+(a[23]-a[14])*(a[23]-a[14])+(a[24]-a[15])*(a[24]-a[15])))=abs(sqrt ((a[13]-a[1])*(a[13]-a[1])+(a[14]-a[2])*(a[14]-a[2])+(a[15]-a[3])*(a[15]-a[3]))) and
(abs(sqrt ((a[13]-a[1])*(a[13]-a[1])+(a[14]-a[2])*(a[14]-a[2])+(a[15]-a[3])*(a[15]-a[3]))) = abs(sqrt ((a[16]-a[4])*(a[16]-a[4])+(a[17]-a[5])*(a[17]-a[5])+(a[18]-a[6])*(a[18]-a[6])))and
(abs(sqrt ((a[16]-a[4])*(a[16]-a[4])+(a[17]-a[5])*(a[17]-a[5])+(a[18]-a[6])*(a[18]-a[6])))= abs(sqrt ((a[19]-a[1])*(a[19]-a[7])+(a[20]-a[8])*(a[20]-a[8])+(a[21]-a[9])*(a[21]-a[9]))) and
(abs(sqrt ((a[19]-a[1])*(a[19]-a[7])+(a[20]-a[8])*(a[20]-a[8])+(a[21]-a[9])*(a[21]-a[9]))) = abs(sqrt ((a[22]-a[10])*(a[22]-a[10])+(a[23]-a[11])*(a[23]-a[11])+(a[24]-a[12])*(a[24]-a[12])))) then writeln ('yes');
Readln;
программа выясняет, является ли фигура с задаными 24 координатами кубом
Про abs(sqrt(...)) я вообще молчу.
P.S. Треду плюс, говно знатное ;)
чисто на вскидку, я бы попытался для начала найти соседние вершины. из них - грани и посчитать площадь граней.
AB AD=0
AB AE=0
AD AE=0
|AB|=|AD|=|AE| (естественно, компьютеру проще проверить AB AB = AD AD = AE AE)
AB+AD=AC
AB+AE=AF
AD+AE=AH
AB+AD+AE=AG
При несоблюдении любого из этих условий куба уже не будет.
Так и это условие (12 диагоналей sqrt(2)*a) даёт нам что гранями куба являются квадраты.
Введем понятие жесткой геометрической фигуры
Жесткая геометрическая фигура - фигура, вид которой однозначно определяется из длин отрезков, соединяющих попарно вершины
Простейший пример - треугольник.
теперь докажем, что - любая фигура (состоящая из вершин и ребер, естественно) - жесткая
в данном случае разница будет только в количестве вершин
посему доказываем матиндукцией
база - для 3 вершин - верно
предположение - для х верно -> верно ли для Х+1?
шаг - добавляем новую вершину - появятся новые отрезки (Х штук) - появятся новые треугольники опирающиеся на все возможные комбинации исходного множества точек -> так как треугольник - жесткая фигура , то каждый и этих треугольников жестко фиксирует положение новой точки относительно основания -> следовательно положение точки жестко фиксируется относительно остального множества точек
Вывод - я аля прав)
но почему б из какой-то вершины не выходить 4м отрезкам длины 1, например? или только двум?
> длинн
Мои глаза...
Не очевидно.
два квадрата в параллельных плоскостях, но проекции их диагоналей на одну плоскость не совпадают, или, более наглядно, два квадрата параллельны друг другу (в параллельных плоскостях) но "повернуты" под углом друг к другу.
Равно как и не могу доказать, что построение единственно ;(
12 sqrt(2)*a и 4 sqrt(3)*a - не только ли достаточно ли этого условия, а минимально ли оно достаточное?
Можно ли проверить меньше отрезков?
Ну это уже задача со звездочкой. Для начала надо бы доказать достаточность всех 28 отрезков.
12 sqrt(2)*a плюс ребра определяют что у нас есть 12 граней-квадратов.
А две диагонали определяют правильное расположение этих 12 граней между собой. В смысле концы этих двух отрезков захватывают каждую из 12 граней.
Вот Тарас говорит.
>>если длины сгруппированы так, как ты подумал - то да
Ну это легко проверить какая длина куда входит.
12 sqrt(2)*a плюс ребра определяют что у нас есть 12 граней-квадратов.
В общем случае точки нам даются не в конкретном порядке, а как попало, нельзя определить какие образуют длинные диагонали. Тем и хорош метод.
А если сделать их не прямыми, а кривыми?!
Какой храбрый петушок.