Bereken de modus

  • Beste,


    Hoe kan ik de modus berekenen van een array?
    Hij moet dus zegmaar de key met de hoogste frequentie weergeven, maar: als er 2 keys zijn dezelfde frequentie, dan moet ie weergeven dat er geen modus is.


    Ik had dit script geprobeerd:
    http://www.phphulp.nl/php/script/snippets/modus/1433/


    Maar die weergeeft dus niet als er 2 dezelfde frequenties zijn dat er geen modus is, wat in de wiskunde wel hoort.


    Ik hoop dat iemand me kan helpen!


    Lars
    P.S.
    Ook met array_count_values(); ben ik bekend, maar ik snap niet hoe ik dat 2e wat ik wil dan doe.

  • Ik heb het voor je gemaakt, met de array die ik heb gebruikt werkt het tenminste.


    Misschien moet je zelf nog een keer testen met een andere array, heb zelf fe geen tijd om dat te doen. School examens....


    Code:


    Graag gedaan!


    Mees Molenaar

  • Hmm..
    Als ik de array print_r(); dan krijg ik dit eruit:

    PHP
    Array ( [0] => 1.0 [1] => 2.0 [2] => 4.0 [3] => 6.0 [4] => 6.0 )


    En dan zegt ie "Geen modus".
    Heb het script een beetje bewerkt:


    Ik wou het in een functie, omdat ik het meerdere malen aanroep.


    Bedankt alvast,


    Lars

    Nieuwe reactie samengevoegd met originele reactie op 03.11.10 21:18:08:
    Ook als ik de reeks 1-2-3-4-4 gebruik krijg ik de foutmelding...


  • Dan komt gewoon netjes:

    PHP
    2Berekening: Kijk welk getal het meest voorkomt / de hoogste frequentie heeft.In dit geval is dat 2.
  • Die code die je nu gebruikt is eigenlijk best wel super slordig...


    Probeer dit eens ;)

  • Rahl,
    Het werkt nog niet, nog steeds hetzelfde probleem..
    Array is gewoon 1-2-3-4-4 en dan geeft ie dus dat fout bericht weer...


    Lars

    Nieuwe reactie samengevoegd met originele reactie op 03.11.10 21:49:44:
    Ik heb het script even losgekoppeld van de site.
    Dan krijg ik hetzelfde:
    http://planemania.nl/overig/array.php


    In dit script:


    Wat is het :(


    Lars

  • Nee, had zelf ook even gekeken. Foutje van mijzelf, sorry:



    Moet wel zeggen dat wat je probeert te doen, geen eitje is voor iemand die nog niet zo goed overweg kan met PHP (in elk geval niet om het netjes te doen)

  • Oja,
    En het is dus deze fout:
    Als één van de modus getallen (dus het getal met de hoogste frequentie) achteraan staat dus:
    1-2-3-4-4
    Dan zegt ie: "Geen modus".
    Echter als ik probeer 1-2-4-4-5, dan wel.
    Het is dus als het modus-getal achter staat, werkt het niet.


    Lars

  • Dit is de array die ik erin stop:

    PHP
    $cijfers_keepin = explode("\\n", strip_tags($_POST['cijfers']));


    En die $_POST komt uit een text veld.
    Je moet daar per regel ??n cijfer invoeren.


    En dan zet ik die array letterlijk in de functie..
    Op de ??n of andere manier werkt dat dus niet...


    Heeft er iemand een oplossing?


    Lars

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!