Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26061
Рейтинг: 2120
#61: 2010-08-15 00:44:26 ЛС | профиль | цитата
iarspider, спешу тебя разочаровать, но в оценке схемы miver-a мы ошиблись, там нет поиска наикратчайшего пути, там обычна схема перебора, хотя, и очень оригинальная, причем, битовый сдвиг -- текстовый
карма: 22

0
Ответов: 5446
Рейтинг: 323
#62: 2010-08-15 00:48:28 ЛС | профиль | цитата
FFFFFUUUUUU--
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#63: 2010-08-15 00:49:50 ЛС | профиль | цитата
iarspider, извини за мою тупизну, но я никак не могу понять взаимоисключающих понятий. Если у кого-то есть больше 50%, то он получает 100% прибыли, зачем он еще должен с кем-то кооперироваться, он в полном шоколаде, у него -- все, идиотизм, какой-то. Остальные-то все имею 0% или я чего-то не пойму в этой дележке
карма: 22

0
Ответов: 5446
Рейтинг: 323
#64: 2010-08-15 00:52:55 ЛС | профиль | цитата
nesco, да фиг их, буржуёв, поймёт. Как было сказано в ВиО, "будем считать, что остальные акционеры самостоятельно не предетдуют на долю в доходе".
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#65: 2010-08-15 00:59:37 ЛС | профиль | цитата
iarspider писал(а):
что остальные акционеры самостоятельно не предетдуют на долю в доходе

Значит, результат должен быть 0, если у другого есть больше 50%. Захочет тот, другой, кому-то чего-то выдать, это нас волновать не должно
И еще вопрос -- зачем вступать в коалицию, когда твой процент может получиться меньше текущего, это -- нелогично, нет смысла вступать в этом случае, и результат должен быть таким, как твой исходный процент
карма: 22

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#66: 2010-08-15 01:03:59 ЛС | профиль | цитата
г. Влад писал(а):
Афигеть, где детали докупали?

Это к чему
карма: 22

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#67: 2010-08-15 01:12:27 ЛС | профиль | цитата
А зачем мы должны чего-то докупать, у нас и так все есть

iarspider, кстати, внимательно посмотри на схему miver-a она тебе мою ничем не напоминает, алгоритмы, почти полностью, совпадают (тот же сдвиговый регистр, тот же сумматор, тот же определитель минимальной допустимой суммы), хотя, мы и делали их отдельно друг от друга
карма: 22

0
Ответов: 5446
Рейтинг: 323
#68: 2010-08-15 01:13:00 ЛС | профиль | цитата
nesco, представим, что ты акционер Х. Если у тебя больше 50%, то ты забираешь весь банк. Если у тебя < 50%, то без коалиций ты только на дырку от бублика претендуешь. Остальные акционеры при этом считаются "болванами" (карточный термин при игре в Бридж).
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#69: 2010-08-15 01:16:53 ЛС | профиль | цитата
iarspider писал(а):
Если у тебя < 50%, то без коалиций ты только на дырку от бублика претендуешь

Если у кого-то больше 50%, то у коалиции никакого шанса нет получить прибыль, у нее всегда будет меньше 50%, и вся коалиция, в этом случае, получит
iarspider писал(а):
дырку от бублика

А что с вопросом про доход в коалиции меньше чем без нее
карма: 22

0
Ответов: 5446
Рейтинг: 323
#70: 2010-08-15 01:22:07 ЛС | профиль | цитата
Остальные акционеры при этом считаются "болванами" (карточный термин при игре в Бридж).

См. 3й пример в тексте исходной задачи:
N = 2, X = 2
A = {56.87, 43.13}
Ответ = 43.13
------------ Дoбавленo в 01.22:
При этом (2й пример):
N = 2, X = 1
A = {56.87, 43.13}
Ответ = 100.0
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#71: 2010-08-15 01:25:35 ЛС | профиль | цитата
iarspider писал(а):
См. 3й пример в тексте исходной задачи:

Я не могу понять этого, как второй может получить 43.13%, когда первый забрал 100%, это какой-то бред
карма: 22

0
Ответов: 5446
Рейтинг: 323
#72: 2010-08-15 01:34:37 ЛС | профиль | цитата
nesco, а первый в этом случае "болван" - сам ни на что не претендует, только на то, что ему перепадёт. А задача, конечно, своеобразная, под стать стране проведения (Colombia, однако )
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#73: 2010-08-15 01:39:01 ЛС | профиль | цитата
iarspider, а все же, что вот по этому вопросу
nesco писал(а):
зачем вступать в коалицию, когда твой процент может получиться меньше текущего, это -- нелогично, нет смысла вступать в этом случае, и результат должен быть таким, как твой исходный процент

карма: 22

0
Ответов: 5446
Рейтинг: 323
#74: 2010-08-15 01:45:47 ЛС | профиль | цитата
nesco, последний раз всё разобъясняю:
1. Если ты == X:
1.1. Если у тебя >= 50%, То ты получаешь 100% дохода
1.2. Если у тебя < 50%, и ты не вступаешь в коалицию, то ты получаешь 0%
1.3. Если у тебя < 50%, и ты вступаешь в коалицию, то ты получаешь сколько-то (зависит от отношения твоего вклада и вклада всей коалициии)
2. Если ты != X:
2.1. Ты получишь столько, сколько дадут. Точка.
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#75: 2010-08-15 02:01:11 ЛС | профиль | цитата
Тупая логика, в теории, и то более нормальные условия рассматривают, ну да ладно
------------ Дoбавленo в 01.56:
Вот, мой последний вариант с условием, алгоритм не трогал


Add(MultiElementEx,14421706,623,357)
{
@Hint=#8:Задача 0|5:nesco|12:Старшая Лига|
AddHint(-68,70,72,39,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,12942674,14,21)
{
WorkCount=#8:doEvent1|
EventCount=#8:onResult|
DataCount=#23:N=Количество акционеров|20:X=Расчетный акционер|14:A=Массив долей|
Width=825
Height=473
VOffset=42
HOffset=70
link(doEvent1,2891212:doEvent1,[])
}
Add(Math,11568073,77,329)
{
OpType=9
Op1=1
ResultType=0
link(onResult,16475328:doOperation,[])
link(Op2,3192112:Result,[])
}
Add(For,3114352,182,329)
{
Start=1
IncludeEnd=1
InData=0
link(onEvent,2791589:doEvent1,[])
link(onStop,12618916:doOperation,[(223,342)(223,440)])
}
Add(Math,2949141,210,63)
{
OpType=1
Op2=1
ResultType=0
link(onResult,4150625:doClear,[])
link(Op1,12942674:X,[(216,42)(97,42)])
}
Add(If_else,12750795,462,406)
{
Type=2
link(onTrue,3430907:doCompare,[])
link(Op1,10462767:Var2,[])
link(Op2,5184624:Result,[(475,391)(517,391)])
}
Add(Memory,15001314,574,329)
{
Default=Integer(100)
Point(Data)
link(Data,3070735:Var3,[(580,285)])
}
Add(If_else,3430907,567,406)
{
Type=1
link(onTrue,15001314:doValue,[(616,412)(616,309)(565,309)(565,335)])
link(Op1,10462767:Var3,[(573,383)])
link(Op2,7295039:Var2,[])
}
Add(GetDataEx,7295039,574,378)
{
link(Data,15001314:Value,[])
}
Add(ArrayRW,4155473,406,175)
{
link(onRead,5439549:doCalc,[(450,181)(450,237)])
link(Array,4150625:Array,[])
}
Add(Math,5184624,511,140)
{
OpType=1
Op1=50
link(onResult,15001314:doClear,[(556,146)(556,342)])
}
Add(RealArray,4150625,406,49)
{
RealArray=[]
}
Add(If_else,16202570,203,126)
{
Type=5
link(onTrue,4155473:doAdd,[(387,132)(387,195)])
link(onFalse,9424125:doCompare,[])
link(Op1,2522476:Index,[(209,114)(171,114)(171,170)(132,170)])
link(Op2,2949141:Result,[])
}
Add(ArrayEnum,2522476,119,126)
{
link(onItem,16202570:doCompare,[])
link(onEndEnum,13359254:doEvent,[(163,139)(163,195)(24,195)(24,335)])
link(Array,12942674:A,[(125,34)(104,34)])
}
Add(Math,13158463,714,434)
{
OpType=3
link(onResult,1269189:doCompare,[])
link(Op1,12618916:Result,[(720,422)(702,422)(702,478)(622,478)])
}
Add(Math,9946039,665,434)
{
link(onResult,13158463:doOperation,[])
link(Op1,7295039:Var3,[(671,383)])
link(Op2,7785862:Var2,[])
}
Add(Math,12618916,616,434)
{
OpType=2
Op1=100
link(onResult,9946039:doOperation,[])
link(Op2,565047:Var2,[])
}
Add(Math,16475328,126,329)
{
OpType=1
Op2=1
ResultType=0
link(onResult,3114352:doFor,[])
}
Add(IntToBits,14135650,280,175)
{
Count=32
Data_0=Integer(0)
Data_1=Integer(1)
ZeroBits=1
link(onBit1,2976483:doWork1,[])
link(onBit2,2976483:doWork2,[])
link(onBit3,2976483:doWork3,[])
link(onBit4,2976483:doWork4,[])
link(onBit5,2976483:doWork5,[])
link(onBit6,2976483:doWork6,[])
link(onBit7,2976483:doWork7,[])
link(onBit8,2976483:doWork8,[])
link(onBit9,2976483:doWork9,[])
link(onBit10,2976483:doWork10,[])
link(onBit11,2976483:doWork11,[])
link(onBit12,2976483:doWork12,[])
link(onBit13,2976483:doWork13,[])
link(onBit14,2976483:doWork14,[])
link(onBit15,2976483:doWork15,[])
link(onBit16,2976483:doWork16,[])
link(onBit17,2976483:doWork17,[])
link(onBit18,2976483:doWork18,[])
link(onBit19,2976483:doWork19,[])
link(onBit20,2976483:doWork20,[])
link(onBit21,2976483:doWork21,[])
link(onBit22,2976483:doWork22,[])
link(onBit23,2976483:doWork23,[])
link(onBit24,2976483:doWork24,[])
link(onBit25,2976483:doWork25,[])
link(onBit26,2976483:doWork26,[])
link(onBit27,2976483:doWork27,[])
link(onBit28,2976483:doWork28,[])
link(onBit29,2976483:doWork29,[])
link(onBit30,2976483:doWork30,[])
link(onBit31,2976483:doWork31,[])
link(onBit32,2976483:doWork32,[])
}
Add(ChanelToIndex,2976483,336,175)
{
Count=32
link(onIndex,4155473:doRead,[])
}
Add(FastMathParse,5439549,462,231)
{
DataCount=1
MathStr="%0 + %1"
Point(doClear)
}
Add(Math,3192112,84,63)
{
OpType=1
Op2=1
ResultType=0
link(onResult,2949141:doOperation,[])
link(Op1,12942674:N,[])
}
Add(Hub,2791589,231,329)
{
OutCount=3
link(onEvent1,14135650:doBits,[(260,335)(260,181)])
link(onEvent2,12750795:doCompare,[(260,342)(260,412)])
link(onEvent3,5439549:doClear,[(254,349)(254,417)(450,417)(450,244)])
}
Add(GetDataEx,3070735,462,280)
{
link(Data,5439549:Result,[])
}
Add(GetDataEx,10462767,462,378)
{
link(Data,3070735:Var2,[])
}
Add(Hub,2891212,28,63)
{
OutCount=3
link(onEvent1,3192112:doOperation,[])
link(onEvent2,9527061:doReset,[(666,76)(666,160)])
link(onEvent3,2522476:doEnum,[(67,83)(67,132)])
}
Add(Memory,14796699,462,140)
{
Default=Integer(0)
link(onData,5184624:doOperation,[])
}
Add(GetDataEx,565047,623,210)
{
Angle=3
link(Data,14796699:Value,[(468,215)])
}
Add(If_else,9424125,336,133)
{
Type=2
Op2=Integer(50)
link(onTrue,1056181:doData,[])
link(onFalse,14796699:doValue,[])
}
Add(DoData,1056181,574,133)
{
Data=Integer(100)
link(onEventData,10887102:doEvent1,[])
}
Add(HubEx,7456991,809,133)
{
Angle=3
link(onEvent,12942674:onResult,[(813,69)])
}
Add(If_else,1269189,763,434)
{
Type=2
link(onTrue,7456991:doWork3,[(813,440)])
link(Op2,15266522:Var2,[])
}
Add(GetDataEx,7785862,672,210)
{
Angle=3
link(Data,565047:Var3,[])
}
Add(GetDataEx,15266522,770,210)
{
Angle=3
link(Data,7785862:Var3,[])
}
Add(IndexToChanel,13359254,35,329)
{
Point(Index)
link(onEvent1,11568073:doOperation,[])
link(Index,9527061:State,[(41,205)(706,205)])
}
Add(Hub,10887102,623,133)
{
link(onEvent1,7456991:doWork2,[])
link(onEvent2,9527061:doOn,[(655,146)(655,167)])
}
Add(Switch,9527061,700,147)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(doOn)
Point(State)
}
END_SDK

------------ Дoбавленo в 02.01:
А ниже -- исправленная схем Леонида
карма: 22

0
файлы: 1test_job_0.sha [23.1KB] [452]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)