【问题标题】:Mode(s) of an Array阵列的模式
【发布时间】:2014-04-24 06:55:45
【问题描述】:

我正在编写一些用于教育目的的代码,我需要这些代码来计算随机生成的值数组的模式。

如果只有一种模式(如数据集中的5:2、3、4、5、5、6、7),那么这很容易(请参阅此处白象的回答:@ 987654321@).

但是,我在处理多个模式的实例时遇到了问题(例如此数据集中的 34:1、2、3、3 , 3, 4, 4, 4, 5, 6, 6)。

如何做到这一点的逻辑似乎已经在 J​​avascript (https://stackoverflow.com/a/3451640/1541165) 和 Java (https://stackoverflow.com/a/8858601/1541165) 中出现,但我不知道这两种语言。

有人可以帮忙把它翻译成 PHP 吗?或者指导一下如何在PHP环境下解决这个问题?

谢谢。

【问题讨论】:

    标签: php arrays math


    【解决方案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);
    
    
    ?>
    

    【讨论】:

    • 效果很好。谢谢!
    猜你喜欢
    • 2014-05-04
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 2015-02-14
    • 1970-01-01
    • 2011-03-02
    相关资源
    最近更新 更多