1
발생 빈도에 따라 정렬 된 값 배열을 만드는 가장 좋은 방법을 이해하려고합니다. 결과 배열은 문자의 빈도에 따라 0에서 몇 개의 반복 문자를 가질 수 있으며 순서는 적절하지 않습니다.PHP는 값 빈도를 기반으로 배열을 생성합니다.
캐릭터 주파수
a => 0.05
b => 0.05
c => 0.1
d => 0.1
e => 0.2
f => 0.5
결과 예 : 여기에 예시 된 데이터의 파괴이다
['b', 'd', 'a', 'f']
['f', 'f', 'c', 'a']
['e', 'c', 'a', 'f']
['a', 'e', 'f', 'd']
수학 확실히 여기 정확하지 않다; 이전 문장을 보여 주기만하면됩니다. 나는 이 아니며 배열 순서와 관련된 일 수도 있고 일 수 있습니다.에는 반복 문자가 포함될 수 있습니다.
여기에 배열을 만드는 기본 루프가 있습니다. 고안된 rand()
방법은이 질문을 직접적이고 단순한 개념을 유지하기 위해 노력한 여러 가지 포악한 수학 방법을 게시하는 것입니다.
$frequencies = [
'a' => 0.05,
'b' => 0.05,
'c' => 0.1,
'd' => 0.1,
'e' => 0.2,
'f' => 0.5
];
$characters = 'abcdef';
$charactersLength = strlen($characters);
$result = [];
for ($i = 0; $i < 4; $i++) {
// $result[] = $this->getCharacterByFrequency();
$result[] = $characters[rand(0, $charactersLength - 1)];
}