Есть некая строка $string
И есть некоторый набор букв/цифр в массиве. Допустим, 4 числа: 1 2 3 4
Задача состоит в том, чтобы предсказуемо, постоянно и равномерно преобразовывать строку в одну из букв/чисел, указанных в массиве, при этом не важно какой будет буква или число - важен лишь порядковый номер этого значения в массиве
Тоесть это некий очень упрощенный хеш
Допустим, 4 числа: 1 2 3 4
<?php
function simple_hash ($s) {
$c = [1, 2, 3, 4];
$a = unpack ('C*', $s);
return $c [array_reduce ($a, function ($a, $n) {return $a += ceil ($n / 256);}, 0) % count ($c)];
}
echo '<pre>' . print_r (simple_hash ('Hello world!'), true);
<?php
function simple_hash ($s) {
$c = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
$a = unpack ('C*', $s);
return $c [array_reduce ($a, function ($a, $n) {return $a += ceil ($n / 256);}, 0) % count ($c)];
}
while ($i < 17) {
$i ++;
$arr[simple_hash ($i)]++;
}
print_r($arr);
Результат:
Array
(
[2] => 9
[3] => 8
)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости