PHP 8.1.0 RC 2 available for testing

gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_hamdistРасстояние Хэмминга

Описание

gmp_hamdist(GMP|int|string $num1, GMP|int|string $num2): int

Возвращает расстояние Хэмминга для чисел num1 и num2. Оба операнда должны быть неотрицательными.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

Должно быть неотрицательным.

num2

Объект GMP, целое число (int) или числовая строка (string).

Должно быть неотрицательным.

Возвращаемые значения

Расстояние Хэмминга между num1 и num2 в виде целого числа (int).

Примеры

Пример #1 Пример использования gmp_hamdist()

<?php
$ham1 
gmp_init("1001010011"2);
$ham2 gmp_init("1011111100"2);
echo 
gmp_hamdist($ham1$ham2) . "\n";

/* расстояние Хэмминга эквивалентно: */
echo gmp_popcount(gmp_xor($ham1$ham2)) . "\n";
?>

Результат выполнения данного примера:

6
6

Смотрите также

  • gmp_popcount() - Количество единиц в двоичной записи числа
  • gmp_xor() - Побитовое исключающее ИЛИ

add a note add a note

User Contributed Notes 2 notes

up
3
Bas Vijfwinkel
3 years ago
For those without gmp support :

$hamming_distance = count(array_diff_assoc(str_split($string1), str_split($string2)));

And if you are not sure if your strings have equal length :

$hamming_distance = count(array_diff_assoc(str_split(str_pad($string1,strlen($string2)-strlen($string1),' ')), str_split(str_pad($string2,strlen($string1)-strlen($string2),' '))));
up
0
grabzila at gmail dot com
6 months ago
<?php
$hamdist
= gmp_hamdist(-100, -10); // 4
$hamdist = gmp_hamdist(100, 10);  // 5
?>

The function works great with negative numbers.
To Top