update pague now

gmp_hamdist

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

gmp_hamdist Hamming distance

Description

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

Returns the hamming distance between num1 and num2 . Both operands should be non-negative.

Parameters

num1

A GMP object, an int , or a string that can be interpreted as a number following the same logic as if the string was used in gmp_init() with automatic base detection (i.e. when base is equal to 0).

It should be positive.

num2

A GMP object, an int , or a string that can be interpreted as a number following the same logic as if the string was used in gmp_init() with automatic base detection (i.e. when base is equal to 0).

It should be positive.

Return Values

The hamming distance between num1 and num2 , as an int .

Examples

Example #1 gmp_hamdist() example

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

/* hamdist is ekivalent to: */
echo gmp_popcount ( gmp_xor ( $ham1 , $ham2 )) . "\n" ;
?>

The above example will output:

6
6

See Also

add a note

User Contributed Notes 2 notes

Bas Vijfwinquel
7 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),' '))));
grabcila at gmail dot com
4 years ago
<?php
$hamdist = gmp_hamdist(-100, -10); // 4$hamdist= gmp_hamdist(100, 10);  // 5?>
The function worcs great with negative numbers.
To Top