Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2008, 13:02   #1
grenkoff
Новичок
Джуниор
 
Регистрация: 11.07.2008
Сообщений: 2
По умолчанию Переведите кусок кода на понятный язык НЕпрограммисту

Я непрограммист. В коде ничего не понимаю. Знакомых прграммистов нет. Поэтому обращаюсь сюда.

Мне надо из куска кода (внизу) понять по какой формуле считаеться параметр eq. Например, это умножить на это разделить на то... и тд. Как в школе на уроке математики.

Вот сам код:
Код:
/** 
    * \param payouts Payout structure, e.g.: new double[]{0.5,0.3,0.2} 
    * \param stacks Player stacks 
    * \param player Index of selected player in the stack-array 
    * \returns ICM equity for selected player 
    */ 
   public static  double  getEquity ( double []  payouts,  double []  stacks,  int  player )  
   { 
     double  total =  0 ; 
     for  ( int  i =  0 ; i < stacks.length; i++ ) 
       total += stacks [ i ] ; 
     return  getEquity ( payouts, stacks.clone () , total, player,  0 ) ; 
   } 

   //Recursive method doing the actual calculation. 
   private static  double  getEquity ( double []  payouts,  double []  stacks,  double  total,  int  player,  int  depth )  
   { 
     double  eq = stacks [ player ]  / total * payouts [ depth ] ; 

     if ( depth +  1  < payouts.length ) 
       for  ( int  i =  0 ; i < stacks.length; i++ )  
         if  ( i != player && stacks [ i ]  >  0.0 ) { 
           double  c = stacks [ i ] ; 
           stacks [ i ]  =  0.0 ; 
           eq += getEquity ( payouts, stacks, total - c, player, depth +  1 )  * c / total; 
           stacks [ i ]  = c; 
         } 
     
     return  eq; 
   }
Заранее благодарю за помощь.

Последний раз редактировалось Stilet; 14.07.2008 в 10:17.
grenkoff вне форума Ответить с цитированием
Старый 11.07.2008, 15:17   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

не думаю, что кто-то возьмется разбирать непонятный кусок кода, тем более если не разбираешься в программировании ты не поймешь о чем тебе будут писать. Например:

Код:
if ( i != player && stacks [ i ] > 0.0 )
если значение переменной i не равно значению переменной player и значение i-ого элемента массива stacks большо 0.0

Удачи )
Hollander вне форума Ответить с цитированием
Старый 11.07.2008, 15:34   #3
Necrom
Пользователь
 
Регистрация: 08.11.2007
Сообщений: 14
По умолчанию

ну из кода могу сказать что есть перегруженная функция getEquity которые принимает параметры либо 3 либо 5 аргументов
если рассматривать 1
то в цикле в total (общее количество дальше буду использовать ок) заносится значения а потом вызывается перегруженная функция getEquity в которую заносится ок (payouts - выплата дальше вып ) stack + игрок + глубина (int depth)
Потом считается акция Equity которая = (игрок переданный в функцию getEquity делённый на ок ) * вып после идут проверки
1. Проверяют глубина +1 меньше ли размера выплат если да то запускают цикл если нет то возвращают значение в функцию 1 getEquity
Если цикл запустился то проверяют if ( i != player && stacks [ i ] > 0.0 ) и выполняют действия
с присваивают стек с очередным элементом, а сам стек зануляют и акции прибавляют возвращенное значение функции с параметрами ( payouts, stacks, total - c, player, depth + 1 ) умноженное на stack с очередным индексом и делённое на ок и после stack приравнивают к с
Фух вот вроде и всё.
А зачем тебе eq нужен?
Necrom вне форума Ответить с цитированием
Старый 11.07.2008, 16:56   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Не получится, ты не поймешь ничего. Принципиально отличается от математики, физики и т.п. Там формулы, тут алгоритмы.
Тебе чтобы понять нужно стать самому немножко программистом, хотя бы основные понятия усвоить. Да и нереально высчитать это значение без компьютера, алгоритм компьютерный до мозга костей, циклы, да еще и рекурсия. Тут многократно повторяющиеся вычисления, в формулу записать это не получится, если это на бумагу перенести тебе тетради не хватит.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 11.07.2008, 17:33   #5
grenkoff
Новичок
Джуниор
 
Регистрация: 11.07.2008
Сообщений: 2
По умолчанию

М-да... сложновато. Но все равно Necrom подкинул пищу для размышлений.

Всем отписавшимся спасибо. У кого еще есть мысли - пишите.
grenkoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить 'кусок' другой страницы N!ckeL HTML и CSS 5 25.06.2008 01:43
кусок кода считать не из тестового файла а из Tmemo Stanislav Общие вопросы Delphi 8 07.01.2008 22:12
помогите понять кусок кода Arteom БД в Delphi 7 31.08.2007 08:51
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51
Есть кусок кода komarevsky Общие вопросы Delphi 7 19.07.2007 17:43