Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
DRUG195
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 8
1

Перевод из PHP в VB

02.05.2012, 20:07. Просмотров 687. Ответов 1
Метки нет (Все метки)

Очень нужна программа для кодирования Хэмминга.

Есть пример кодирования Хэмминга, но он на PHP.
Прошу умельцев перевести на язык Visual Basic

Исходник Ссылка удалена

Код Хемминга – один из первых самокорректирующихся кодов. Он позволяет автоматическое исправление одной ошибки и обнаруживать две. Код Хэмминга используется в некоторых прикладных программах в области хранения данных.

Для этого используются k – контрольных розрядов. И так если у нас задача закодировать m двоичных разрядов, то k должно удовлетворять неравенство 2k ≥ k+m+1 или k ≥ log2(k+m+1)


Зададим начальную последовательность

PHP
1
2
3
  $input = "1001000"; // задаем последовательость
 
   $m = strlen($input); // узнаем длину


Для начала узнаем количество контрольных разрядов:

PHP
1
2
3
4
5
  $k = 2; // задаем самое минимально возможное k
 
   $l2n = log10(2); // 
 
   while ($k * $l2n < log10($k + $m + 1)) $k++; // вычисляем по формуле минимальное k


Запишем информационные разряды на свои места

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 $result = Array(); // заводим массив разрядов
 
     
 
   for ($i = 1, $j=0, $n = $k+$m; $i <= $n; $i++) { // проходим по всем разрядам
 
     if (($i & $i-1) == 0) { // если степень двойки, то есть контрольный разряд, то пропускаем
 
       $result[$i] = '-';
 
       continue;
 
     }
 
     $result[$i] = $input[$j++]; // в информационные разряды записываем исходные данные
 
   }



Узнаем контрольную сумму:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$control = 0;
 
   for ($i = 1, $n = $k+$m; $i <= $k+$m; $i++) { // проходим по всем разрядам
 
     if ($result[$i] == 1)
 
       $control ^= $i; // если единица, то суммируем по модулю два
 
   }
 
   $control = decbin($control); // преобразовываем в двоичный код
 
   for ($i=0, $n = strlen($control); $i<$k-$n; $i++) // дописываем спереди нули
 
     $control = "0".$control;



И записываем контрольную сумму в контрольные разряды:

PHP
1
2
3
4
5
for ($i = 0, $j = 1, $n = strlen($control); $i < $n; $i++, $j*=2) {
 
     $result[$j] = $control[$i]; 
 
   }



Выдаем результат:

PHP
1
2
3
4
5
6
7
$output = ""; 
 
   for ($i= 1, $n = count($result); $i <= $n; $i++)
 
     $output .= $result[$i];
 
   echo $output;
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2012, 20:07
Ответы с готовыми решениями:

Перевод с С++ на php
Когда-то на третьем курсе писал перевод строки в обратную польсую запись. Теперь эта функция мне...

Перевод кода из JS в PHP
Помогите перевести в PHP из JS следующий код: function adder(user,list,add,st) { var o =...

Перевод на Русский в php?
здравствуйте, столкнулась с небольшой проблемой. В мобильной версии сайта. название меню на...

Перевод c PHP в JavaScript
&lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot; /&gt; &lt;/head&gt; &lt;body&gt; &lt;script&gt; ...

Перевод кода с C# на PHP
Есть функция Encrypt, которая шифрует строку: static string Encode(string Text) { byte...

1
DRUG195
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 8
05.05.2012, 18:19  [ТС] 2
!бамп
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2012, 18:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перевод из Paskal в PHP
Доброго времени суток!!! Помогите, пожалуйста, перевести этот код на язык PHP. program kurs;...

Перевод программы с PHP
Здраствуйте! Кому не сложно, переведите, пожалуйста, следующий код на c#. Спасибо. $x =...

Перевод кода С++ в PHP !
как будет на php ? int c=0; String s; read(s); for i=1..len(s){ if(s=8) c=c+2; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.