Вероятность попадания целочисленной точки на плоскость

lena1978

написал сегодня с потолка уравнение плоскости в пространстве, потом взял от балды точку. подставил в уравнение - оказалось точка лежит в плоскости.
задача. произвольно выбираю из промжутка [-10, 10] целые числа A, B, C, D, x, y, z.
Какая вероятность, что окажется Ax+By+Cz+D=0?

blackout

Запрогай и узнай.

blackout

Еще это P(-10 <= Ax+By+Cz <= 10)*(1/21)

lena1978

перебор запрогать?

Vlad128

а смысл? ты же не случайным образом числа выбирал, а произвольным

mtk79

написал сегодня с потолка уравнение плоскости в пространстве
чтобы задача была поставлена корректно — это должно быть уравнение плоскости потолка

blackout

Не надо перебор. 1000 раз выбери случайные числа и посмотри, сколько раз будет лежать на плоскости.

Xephon

 
перебор запрогать?

Да, даже совсем вглупую должно быстро выполниться. Как уже сказали выше, достаточно перебрать шестёрки A,B,C,x,y,z и посчитать, для скольких из них Ax+By+Cz лежит на отрезке от -10 до 10. Потом разделить на 21^7.
Шестёрок всего 21^6 ~= 86 миллионов, по 6 операций на каждую, так что не так уж долго должно выполняться.
Ещё можно учитывать симметрии между A,B,C (тройки (A,B,C (B,A,C ... дают одинаковый вклад так что их можно упорядочить A<=B<=C и примерно в 6 раз быстрее выйдет. Только со случаями A=B и т.д. надо аккуратно считать вклад).
Также можно величину Ax+By+Cz экономно пересчитывать, учитывая то, какой параметр изменился последним при прогонке цикла, даст некоторое ускорение.

mtk79

6 операций на каждую
сравнение результата с -10 и 10 (что есть само по себе некий алгоритм) Вы за операции не признаете?

mtk79

Еще это P(-10 <= Ax+By+Cz <= 10)*(1/21)
это еще поцчему? Вы хотите сказать, что вероятность сумме Ax+By+Cz быть нулем такая же, как вероятность равняться, например, -10?
Это, в частности, относится и к утверждению о переборе 21^6, а не 21^7/ симметрии вариантов

blackout

Вы хотите сказать, что вероятность сумме Ax+By+Cz быть нулем такая же, как вероятность равняться, например, -10?
Нет.

griz_a

Нет, говорится, что нам подходят только те наборы, в которых Ax+By+Cz = -D, т.е.
а) Ax+By+Cz лежит от -10 до 10
б) D принимает фиксированное значение при фиксированных A,B,C,x,y,z.

seregaohota

A=B=C=D=0 допустимо? Или у тебя как для плоскости дополнительное ограничение A, B и C все одновременно не могут быть 0?

seregaohota

перебором для константы-ограничителя m=10 (цифра в идентификаторе - размерность пространства, тебя интересовало n=3)

Q1 = 149
Q2 = 35865
Q3 = 11838301

P1 = 0.0160889752726487
P2 = 0.00878161436262228
P3 = 0.00657285898528183

Xephon

 
сравнение результата с -10 и 10 (что есть само по себе некий алгоритм) Вы за операции не признаете?

Верно подмечено. Впрочем, "алгоритмом" называть сравнение в этом случае не стоит, т.к. при данных ограничениях оно, конечно, выполняется за 1 такт.
Впрочем, и скалярное произведение Ax+By+Cz можно вычислять более эффективно, используя команду mulps (почитать можно тут: http://www.bealto.com/mp-dot_sse.html )

BoBochka

задача. произвольно выбираю из промжутка [-10, 10] целые числа A, B, C, D, x, y, z.
Какая вероятность, что окажется Ax+By+Cz+D=0?
Вероятность получается около 0,65%.
С помощью статистики и языка R её можно посчитать, например, так:

> f <- function(x) x[1] * x[2] + x[3] * x[4] + x[5] * x[6] + x[7]
> w <- -10:10
> s <- 0
> for(i in 1:100000){ if ( f( sample(w, 7, replace=TRUE) ) == 0 ) s = s + 1}

Величина s обычно получается в районе 640 — 680, следовательно, вероятность около 0,65%.

seregaohota

смысла вылизывания алгоритма не вижу - это одноразовая задача, не крутится где-нибудь на сервере во внутреннем цикле. Количество выполнений 6 вложенных циклов в лоб 2^6*10^6 при мегагерцах цпу выполняется за пару секунд что и подтвердилось экспериментально. Хотя тоже была сначала мысль учесть симметрию относительно 0 и инвариантоность перестановок A,B,C. Но больше на отладку и вылавливание непреднамеренных ошибок затратишь - пара секунд процессорного времени в одноразовой задаче (которую не предполагаем дальше развивать как алгоритмы решения класса задач) - не то место, где надо вылизывать алгоритм

BoBochka

А какой ответ (цифры) получился у Вас?

mtk79

ночная чадьба до добра не доводит

seregaohota

так тремя постами выше [math]$p = \dfrac{11838301}{21^7}$[/math] или
 
P3 = 0.00657285898528183
Оставить комментарий
Имя или ник:
Комментарий: