我为教育目的编写了一些代码,我需要代码来计算随机生成的数组值的模式。
如果只有一种模式(如数据集中的 5 :2,3,4,5,5,6,7)那么这很容易(参见White Elephant' s在这里回答:How to find the mode of an array in PHP)。
但是我遇到的情况有问题,在这个数据集中有多种模式(例如 3 和 4 :1,2,3 ,3,3,4,4,4,5,6,6)。
在Javascript(https://stackoverflow.com/a/3451640/1541165)和Java(https://stackoverflow.com/a/8858601/1541165)中似乎已经存在如何执行此操作的逻辑,但我不知道这些语言中的任何一种。< / p>
有人可能会帮助将此转换为PHP吗?或者就如何在PHP环境中解决这个问题提供指导?
感谢。
答案 0 :(得分:1)
从https://stackoverflow.com/a/8858601/1541165
端口到PHP<?php
$array = array(1,2,3,4,4,5,5,6,7,8,10);
$modes = array();
$maxCount = 0;
for($i = 0; $i < count($array); $i++){
$count = 0;
for($j = 0; $j < count($array); $j++){
if ($array[$j] == $array[$i]) $count++;
}
if($count > $maxCount){
$maxCount = $count;
$modes = array();
$modes[] = $array[$i];
} else if ( $count == $maxCount ){
$modes[] = $array[$i];
}
}
$modes = array_unique($modes);
print_r($modes);
?>