• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Вопрос: Перевод кода из C++ в PHP

  • Автор темы CorvusCorax
  • Дата начала
Статус
Закрыто для дальнейших ответов.
C

CorvusCorax

Добрый день!
Сишный скрипт нужно переписать на РНР. В частности, из вот этого фрагмента:

C++:
void ComputeFeedForwardSignals(double* MAT_INOUT,double* V_IN,double* V_OUT, double* V_BIAS,int size1,int size2,int layer)
{
int row,col;
for(row=0;row < size2; row++) 
{
V_OUT[row]=0.0;
for(col=0;col<size1;col++)V_OUT[row]+=(*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
V_OUT[row]+=V_BIAS[row];
if(layer==0) V_OUT[row] = tanh(V_OUT[row]);
if(layer==1) V_OUT[row] = logistic(V_OUT[row]);
}
}

У меня получилось вот это:

PHP:
function ComputeFeedForwardSignals ($MAT_INOUT, $V_IN, $V_OUT, $V_BIAS, $size1, $size2, $layer) {

for($row=0; $row < $size2; $row++) {
$V_OUT[$row]=0.0;
for($col=0; $col<$size1; $col++) $V_OUT[$row] = $V_OUT[$row] + ...
$V_OUT[$row] = $V_OUT[$row] + $V_BIAS[$row];
if($layer==0) $V_OUT[$row] = tanh($V_OUT[$row]);
if($layer==1) $V_OUT[$row] = logistic($V_OUT[$row]);
}

}

Непонятно только, что делать с выражением (*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
Что тут имеется в виду? Прошу объяснить, что делает это выражение.

Добавлено: MAT_INOUT+(row*size1)+col

Конкретно вот это интереснее всего. Это обращение к элементу массива, или что?
MAT_INOUT - двумерный массив.
 
L

lazybiz

MAT_INOUT - двумерный массив.
Судя по определению он одномерный, просто адресуется как двумерный.

Так вот если бы он был определен как двумерный, запись:
C++:
*(MAT_INOUT+(row*size1)+col)
выглядела бы как:
C++:
MAT_INOUT[row][col]

Это обращение к элементу массива?
Да.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!