Форум: "Потрепаться";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
ВнизПятничные задачки. Разомнем извилины. Найти похожие ветки
← →
MBo © (2005-09-16 16:24) [80]Igorek © (16.09.05 16:10) [76]
Не решены:
9 и частично 11
← →
Igorek © (2005-09-16 16:29) [81]9. 1/2
← →
Igorek © (2005-09-16 16:32) [82]Сорри.
9. d/2cos(30градусов)
← →
MBo © (2005-09-16 16:34) [83]>Igorek © (16.09.05 16:32) [82]
>9. d/2cos(30градусов)
нет
← →
palva © (2005-09-16 16:50) [84]5. Задача вообще-то решена, но я попробую мотивировать.
Из соображений симметрии точка сочленения ширм должна находиться на биссектрисе прямого угла. Т. е. можно рассматривать следующую "половину" задачи: какой треугольник с основанием 1 метр и углом при вершине pi/4 будет иметь наибольшую площадь. "Геометрическое место" вершин таких треугольников будет дуга окружности (составляющая три четверти всей окружности), построенная на основании 1 м как на хорде. Наибольшую высоту, а значит и наибольшую площадь будет иметь рабнобедренный треугольник. Это означает, что угол ширмы со стеной должен быть 3*pi/8
← →
GuAV © (2005-09-16 16:58) [85]11 Для треугольника:
Определить наибольшую сторому - допустим, это AC. Провести к ней высоту BO. Выбрать координату по стороне AC и по высоте BO т.о. получить точку M.
Если координата по AC меньше AO, то проверить, не находится ли точка M за AB по знаку cos(MAB). Если точка M за AB, то координата_по_BO := BO - координата_по_BO; координата_по_AC := AO - AC.
Если координата по AC не меньше AO, то аналогично для AC.
Т.е. выбрать точку в прямоугольнике, одна из сторон которого - большая сторона треугольника, а точка против этой стороны треугольника лежит на противоположной стороне прямоугольника; затем, если не попала в треугольник, скорректировать координаты.
Процедуру писать не стал, т.к. способ кажется громозким.
← →
Igorek © (2005-09-16 17:03) [86]
> MBo © (16.09.05 16:34) [83]
Еще раз проверил - так выходит. :(
Вертикаль - 90 градусов.
Угол падения - между вертикалью и основой цилиндра - равномерная случайная величина. Если он меньше 30 градусов - упадет на ребро. В момент падения вертикаль проходит через центр масс.
← →
default © (2005-09-16 17:32) [87]11. треугольник
метод симметричного отображения
http://webfile.ru/522660
← →
default © (2005-09-16 17:52) [88]сорри, вот такой рисунок http://webfile.ru/get/967614567/1.rar
← →
GuAV © (2005-09-16 17:57) [89]default © (16.09.05 17:32) [87]
Нет, не такbegin 644 2.zip
M4$L#!!0``@`(`.:&,#-B_$S\2@4``%HW`@`%````,BYB;7#MW5UN$S$4AN&4
M5;``+E@!W"//!M@#*V1Q0XI0E;9I,IW.C\]WGE<J5"!%XV/[C3VVCW_\_/7]
MT^F1;^>?K^>?/P^GT^_SWP^GS__^_<O__[]D`@#,@S,!@#,!@#,!@#,!@#,!
M@#,!@#,!`)P)`)P)`)P)`)P)`)QY]S,!C`/157&F\#8<YZOW06I!-ZSE3-VG
MH6&,;<:I!5]A19VIROHX\ZFK/OVIZ@_YPC+LK^Y,W:>#,R^K^/(7]7Z4*CFS
MM#/570=GFF4,I4I5$.!,U=<D)FIYMR&]ZHAWIOD:9[X8)EDP6GU@R9EASE2/
MG#E=>^.M):RK2K$-<Z:JY$R-85-5BFV>,\W3.5,SV*%3B&V2,]4I9^K1JP\L
M]:]X9S:OUL[.-,+<80F,,R.=V;G[6#>G2@U,GUW\F0WK-]B9-[30=FZ^_]<$
M9V8[LV<G"K/!;1_VW)EY8&$Y,]Z9W>;I87F-)NL[8ZB2,ULYLU5=1^:"FWJO
M[PPUA.;,/LYL4MUA9;2X,UK!.;.5,SL,5R+7@"JN[(Q9:L[LYLSX>B]:M!OK
M.%9V-##.".0S(VO_=J%*%+G;90JU7CYP9EMG!L]D`SKFU.!-9M"2<69S9TZ)
MBR9S)KRUINJ1"ULZ.(HZ,VR>GG>/=E[5Z."H[LRDQA`S,)LSR)PO7C6BFW"F
M]G"[""7[Z7S=C5S&U)>QG,F98?/TJQMU!G\W^)$G"+!0V9NC.),SPQI&PW78
M00Y7-CFOQ)F<&=8VFJ>_.R0WFB0PX,RZDZR>^[+V/SK4]A0\9W)F6"-9:ZI;
M[AOD];-M=R&.RU/`F3"M9!5GOI7=MV+!5[RCUGU#G,F9>:.+%?/FE3N,<W<G
M)U5R)F=J,-LY,Z_L\^U"E9S)F4W:S+JY1LMUEOF75%:?4-R=%W`F9X[6/CO$
M/S@GV^N,<TFI,SB3,TU2."/3X5E8O^-,SBPQ5HF,?^2UCR]4&6#.W3;V<R9G
MACW>%LY,RLD6^3)SSZ\VSN3,L"?<+O[5AV"O732OV._V.0#%<IR9-$]W\F6Q
M*DN7>K=MM)S)F6&/RIG3JN\GRYUEX$S.G/J=^-:D1U-3&QIF<6;>:#NQB
M/9OT;KI@#!"@S+#6U:I)"[)"2%XCEN/,I`;6H4F/L)URQ?>EFC1GJJ8#AR79
M3;KZU3\5[V:JF":`,_..MG%FN8"E1\Q9*)_>W0)R)F>&:3/XA&/%,7!U6]:M
M#LXTM6PU)L\8DDW/C^?$P"*<F33@].YW0/E7M,U;3\Z9G!FFS=+Y<B.[0[G2
MW7Y@SN3,L#%53-_,ZPX95TIQ)F>&A:M$#J@FK\6N;M0)6$-G.<Y,BMC@5Y"W
MV@(1^=7`F9P9)I.1MTEGM.2994E=:.9,S@P+W5#9CZO?2G;UX=]UM66>-CF3
M,\,&G",D\$RRQ+(-BB].S7`F."/8&!Z8@Z[)Z[MESDSZ$F$YSDP*XR&9E%HM
MTMTM;/;I;,[DS+!Y^I[)0/J<I%M\$(8SP9F#QW.?7.6=WY9P)LMQ9E)(-XJ5
M_`S+IMN<"<X<?)Z^Q<$B\9^>;Q_B3"!F3&Q7W!O/EE=CRYE:`F<FA??CVSNI
M<L4A-V>",P?ON<MB196<J3-R9L\X+^C4PLLP.B-GM@WUNU+N".S6]9*7X5R;
MX<RPV>+,"Q"%;I]*N?R%,\&9@P]LJ/)P;3IO#LX</.Q7$X.+SU":E`L.G#E^
M)S6P9!@EXDP`[C?G3`#@3$$``,X$`,X$`,X$`,X$`,X$`,X$`"`F`"`F`"`F
M`"`F`"`F`"`F`(`S`8`S`8`S`8`S`8`S`8`S`0"<"0"<"0![.O,O4$L!`A0`
M%``"``@`YH8P,V+\3/Q*!0``6C<"``4````````````@`````````#(N8FUP
64$L%!@`````!``$`,P```&T%````````
`
end
sum -r/size 57717/1462
← →
GuAV © (2005-09-16 17:59) [90][89] Хе, думал прокатит, а оказывается это тэг. :)
[88] - принято.
← →
GuAV © (2005-09-16 18:00) [91]
> оказывается это тэг. :)
оказывается &itB> это тэг. :)
:-)
← →
TG © (2005-09-16 18:05) [92]ХЗ
← →
MBo © (2005-09-16 18:06) [93]Для треугольника можно использовать параллельные одной из сторон сечения, координату по сечению выбирать линейно от Random, а удаление сечения от вершины - как Sqrt(Random)
a:=Sqrt(Random);
b:=Random;
Результат - лиейная комбинация вершин с весами, если не ошибаюсь:
x:=b*a
y:=b*(1-a)
z:=1-b
Но метод с отражением от диагонали параллелограмма, построенного на треугольнике - эффективнее
a:=Random
b:=Random
if a+b>1 then begin
a:=1-a;
b:=1-b;
end;
Веса вершин a, b, (1-a-b)
← →
Igorek © (2005-09-16 18:46) [94]2MBo
> Igorek © (16.09.05 15:32) [68]
Правильно?
Поясню. Пусть точка x,y = 0..1. Четырехугольник поделился на треугольники с площадью 1/5 и 4/5 к общей.
х - оставляем
у - если меньше 1/5 - умножаем на 5/1 и точка попадет на первый, иначе - на 5/4 и во второй.
Получим снова x,y = 0..1 и треугольник. Дальше = известно.
← →
MBo © (2005-09-16 20:27) [95]>Igorek © (16.09.05 18:46) [94]
эээ... 68 пост про круг
Может, речь идет о 67?
Да, четырехугольник можно поделить на два треугольника и уже известным методом ставить в них точки, распределяя их соответственно площади.
А вот разъяснение из [94] я не понял :)
На самом деле для четырехугольника есть и другой метод, не требующий деления на тр-ки и очень эффективный. Я бы до него фиг сам додумался.
← →
default © (2005-09-16 21:37) [96]MBo © (16.09.05 20:27) [95]
[88] медленный?
← →
default © (2005-09-16 21:39) [97]MBo © (16.09.05 20:27) [95]
кстати может нерешённую задачу про сломаные и несломаные приборы выложить ещё, я как раз хотел над ней подумать на пятничные задачки эти...:)?
← →
MBo © (2005-09-17 06:18) [98]>default © (16.09.05 21:37) [96]
>[88] медленный?
Насколько я понял рисунок, это вторая реализация из [93] ?
Есть N неких устройств.
Часть из них исправна, часть сломана. Известно, что исправных больше, чем сломаных.
Одним прибором можно проверить другой, результат проверки - исправен проверяемый прибор или нет.
Понятно, что сломанный прибор может выдать что угодно, и доверия ему нет. Исправный же прибор всегда даёт правильный ответ.
Проверка довольно дорогая, поэтому их количество надо минимизировать.
Цель - найти хотя бы один исправный прибор.
Какое минимальное количество проверок придётся сделать в худшем случае?
дополнения из обсуждения:
-----------------------
-Интересно. Если я проверю одним прибором другой, и получу отрицательный ответ, то оба эти прибора можно отложить в сторонку.
-Вы на правильном пути.
---------------
Подсказка
я не проверяю один и тот же прибор больше одного раза
------------------------------------------------------------
для N=8 достаточно 4-х проверок.
Для 10-ти уже нужно 7 проверок
-----------------------------------
← →
default © (2005-09-17 14:29) [99]MBo © (17.09.05 06:18) [98]
"Насколько я понял рисунок, это вторая реализация из [93] ?"
не знаю, метод такой
если исходный треугольник не прямоугольный, то разбиваем его на два прямоугольных проведением высоты
каждый прямоугольный треугольник дополняем до прямоугольника,
но равномерно генерить случайные точки для прямоугольника мы умеем
поэтому генерируем случайные точки в прямоугольник, если сгенеренная точка попала в наш треугольник, то на этом останавливаемся, иначе эта точка попала в точно такой же прямоугольный треугольник только перевёрутый, поэтому тут имеется взаимнооднозначное соотв-ие между точками и мы просто отображаем точку из "клона" нашего прямоугольного треугольника в наш прямоугольный треугольник, как видно метод крайне прост
а задачей по приборам надо заняться:)
только думаю лучше, наверно, отдельной веткой её запостить(иначе обычно подобные посты воспринимаются как offtopic) и написать типа доселе неразрешимая для заинтересованности
← →
MBo © (2005-09-17 17:12) [100]>метод такой
>если исходный треугольник не прямоугольный, то разбиваем его на два >прямоугольных проведением высоты
Это все лишнее.
Треугольник дополняем до параллелограмма, генерируем два числа.
a:=Random
b:=Random
Их сумма >1 означает, что попали выше диагонали - отражаем точку (вычитая из 1)
if a+b>1 then begin
a:=1-a;
b:=1-b;
end;
P=P1*a+P2*b+P3*(1-a-b)
Страницы: 1 2 3 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
Память: 0.63 MB
Время: 0.015 c