Привіт Гість ( Вхід | Реєстрація )

> Это реальная задача по теории вероятностей!, от не п
Death
Oct 27 2011, 21:12
Пост #1


<script ///>
**********

Група: Moderators
Повідомлень: 6 371
З нами з: 5-November 03
З: Kyiv
Користувач №: 26
Стать: НеСкажу
Free-DC_CPID
Парк машин:
гидропарк
jabber:deadjdona@gmail.com



(Show/Hide)



--------------------
wbr, Me. Dead J. Dona OGR-27
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Відповідей
x3mEn
May 29 2012, 13:18
Пост #2


snow catcher
*********

Група: Trusted Members
Повідомлень: 2 213
З нами з: 4-August 07
Користувач №: 563
Стать: Чол
Free-DC_CPID



Коротше, кому цікаво, ось мій варіант реалізації:

SELECT
MIN(CASE WHEN N=0 THEN 0 ELSE 1 END) *
EXP(SUM(LN(CASE WHEN N=0 THEN 1 ELSE ABS(N) END))) *
(((1-MOD(SUM(CASE WHEN N<0 THEN 1 ELSE 0 END),2))*2)-1) AS P
FROM T


Єдине, чого немає, це перевірки на переповнення.
Але то зайве. Зрозуміло, що якщо комусь треба порахувати добуток всіх чисел у стовпчику,
результат має бути такий, щоб його можна було показати.

Якщо цікаво, ось так рахується 83!

SELECT
MIN(CASE WHEN N=0 THEN 0 ELSE 1 END) *
EXP(SUM(LN(CASE WHEN N=0 THEN 1 ELSE ABS(N) END))) *
(((1-MOD(SUM(CASE WHEN N<0 THEN 1 ELSE 0 END),2))*2)-1) AS P
FROM (select rownum as N from dual connect by rownum<=83) T


P = 3,94552396972066E124

Це максимум. 84! вже викликає
ORA-01426: numeric overflow

А ось приклад добутку і додатніх і від'ємних чисел:

SELECT
MIN(CASE WHEN N=0 THEN 0 ELSE 1 END) *
EXP(SUM(LN(CASE WHEN N=0 THEN 1 ELSE ABS(N) END))) *
(((1-MOD(SUM(CASE WHEN N<0 THEN 1 ELSE 0 END),2))*2)-1) AS P
FROM (select rownum-47.5 as N from dual connect by rownum<=98) T


P = -2,5948321048549E123

А ось приклад добутку ряду, в якому є 0:

SELECT
MIN(CASE WHEN N=0 THEN 0 ELSE 1 END) *
EXP(SUM(LN(CASE WHEN N=0 THEN 1 ELSE ABS(N) END))) *
(((1-MOD(SUM(CASE WHEN N<0 THEN 1 ELSE 0 END),2))*2)-1) AS P
FROM (select rownum-45 as N from dual connect by rownum<=98) T


P = 0

І навіть із значенням NULL все нормально рахує:

select rownum-1.5 as N from dual connect by rownum<=2
union all
select null from dual


# N
1 -0,5
2 0,5
3

SELECT
MIN(CASE WHEN N=0 THEN 0 ELSE 1 END) *
EXP(SUM(LN(CASE WHEN N=0 THEN 1 ELSE ABS(N) END))) *
(((1-MOD(SUM(CASE WHEN N<0 THEN 1 ELSE 0 END),2))*2)-1) AS P
FROM (select rownum-1.5 as N from dual connect by rownum<=2
union all
select null from dual) T


P = -0.25


--------------------

(Show/Hide)

User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Повідомлення у даній Темі
Death   Это реальная задача по теории вероятностей!   Oct 27 2011, 21:12
tiss   Между прочим ничего смешного в этом нет! Э...   Oct 27 2011, 23:09
nikelong   tiss, "B" ?   Oct 27 2011, 23:29
vitalidze1   Якщо питання буде відкритим, то хз, якщо закритим,...   Oct 28 2011, 09:23
Khvastov Maxim   я голосую за А) :ph34r2:   Oct 28 2011, 09:50
tribal   по идее 50 %   Oct 28 2011, 15:51
london2004   B - 50% Потому что есть 2 по 25% Кто-нибудь, скаж...   Oct 28 2011, 17:37
SpellChecker   Правильный ответ: Stack overflow :) Правильный от...   Oct 28 2011, 18:20
tyoma   Задача некоректна блин же. Мало вводных данных ), ...   Oct 28 2011, 19:32
nikelong   Ну так что, кто даст развернутый ответ? Я могу об...   Oct 28 2011, 19:57
Death   B это 1 из 4 - то есть 25% ОЛОЛО   Oct 28 2011, 20:19
tiss   B это 1 из 4 - то есть 25% ОЛОЛО Ответ очень пр...   Oct 28 2011, 22:08
mzhelo   С вероятностью 50% я получу ответ 25% - не коррект...   Oct 28 2011, 22:13
tribal   блин.. я запутался... там вообще 33,3% вероятность...   Oct 28 2011, 22:24
mzhelo   блин.. я запутался... там вообще 33,3% вероятност...   Oct 28 2011, 22:50
Bel   Здесь нужен x3mEn с кулькулятором.   Oct 28 2011, 22:56
mzhelo   Здесь нужен x3mEn с кулькулятором. Ну-ну... Неуж...   Oct 28 2011, 22:57
Bel   mzhelo, :) я ж не говорил, что здесь нужен x3mEn с...   Oct 28 2011, 23:07
mzhelo   [b]mzhelo, :) я ж не говорил, что здесь нужен x3m...   Oct 28 2011, 23:12
Death   mzhelo, все проигнорировали. )) обсуждать интересн...   Oct 28 2011, 23:12
6 Сторінки V  1 2 3 > » 


Reply to this topicStart new topic
2 Користувачів переглядають дану тему (2 Гостей і 0 Прихованих Користувачів)
0 Користувачів:

 



- Lo-Fi Версія Поточний час: 5th November 2026 - 09:43