Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
14-1126716434
lookin
2005-09-14 20:47
2005.10.09
Любопытный момент в протоколе матча


14-1126765604
NailMan
2005-09-15 10:26
2005.10.09
Зацените моих тараканов в голове!


14-1127296958
Satirus
2005-09-21 14:02
2005.10.09
&amp;#65387;Женщины и проги&amp;#65403; Автор неизвестен.)


9-1117823955
Toxic
2005-06-03 22:39
2005.10.09
Растровые шрифты в классах (OpenGL API)


2-1124791012
Sepuka
2005-08-23 13:56
2005.10.09
принцип работы компонента ProgressBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский