Привіт Гість ( Вхід | Реєстрація )
| 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) -------------------- |
![]() ![]() |
| 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) |
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![]() ![]() |
|
Lo-Fi Версія | Поточний час: 5th November 2026 - 09:43 |