Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Algoritmo matematico.

  1. #1

    Algoritmo matematico.

    Ho un array con un numero x di elementi.
    Come faccio a creare tutti i possibili insiemi di y elementi, tale che y<x.
    Esempio, ho un array di 10elementi. Voglio ricavarmi tutte le possibili combinazioni per avere n gruppi di 4elementi ciascuno.
    Altro esempio molto semplice. Ho 3 elementi, "a","b","c". Voglio trovarmi tutti i possibili insiemi di due elementi ciascuno. Il risultato sarà:
    1) "a" "b"
    2) "a" "c"
    3) "b" "c"
    Se invece ho 4 elementi ("a" "b" "c" "d") e voglio trovarmi tutti i possibili insiemi di due elementi avrò:
    1) "a" "b"
    2) "a" "c"
    3) "a" "d"
    4) "b" "c"
    5) "b" "d"
    6) "c" "d"
    Tutto questo, voglio automatizzarlo per x elementri totali e y numero di elementi per insieme.
    http://www.quantumfoam.eu: The Italian Power Guild on Vanguard

  2. #2
    Questo è esattamente quello che devo fare
    http://www.batmath.it/matematica/a_combin/combinaz.htm
    Però non devo calcolare solo il numero di possibili insiemi, ma anche salvare/stampare ogni insieme.
    http://www.quantumfoam.eu: The Italian Power Guild on Vanguard

  3. #3
    Questo che ho fatto è per ricavarmi il numero di estrazioni possibili, seguento le regole matematiche della pagina che ho linkato....ora devo capire come fare per vedere le combinazioni
    Codice PHP:
    function fattoriale($x) {
        if (
    $x<0)
            return 
    false;
        if (
    $x==0)
            return 
    1;
        
    $output=$x;
        for (
    $i=($x-1);$i>0;$i--) {
            
    $output=$output*($x-$i);
        }
        return 
    $output;
    }

    function 
    estrazioni($n,$k) {
        if (
    $k>$n)
            return 
    false;
        else
              
    $output=fattoriale($n)/(fattoriale($k)*fattoriale($n-$k));

        return 
    $output;
    }

    // echo estrazione(5,2); 
    http://www.quantumfoam.eu: The Italian Power Guild on Vanguard

  4. #4
    Azzo mi sa che questa cosa è troppo complicata, non riesco a trovare una soluzione...forse mi mancano un po' di basi di mathematica
    http://www.quantumfoam.eu: The Italian Power Guild on Vanguard

  5. #5
    $array[] = 'a';
    $array[] = 'b';
    $array[] = 'c';
    $array[] = 'd';
    $array[] = 'e';

    for ($i = 0; $i < array_count_values($array); $i++) {
    for ($j = ($i + 1); $j < array_count_values($array); $j++) {
    echo $array[$i].' - '.$array[$j].'
    ';
    }
    }

    non l'ho provato, ma forse può funzionare

  6. #6
    questo e' calcolo combinatorio ....

    http://andr3a.dotgeek.org/index.php?language=2&class=58




    esempio caso tuo specifico
    codice:
    <?php
    require( 'Combinatory.class.php' );
    
    $possibilita = Array( 'a', 'b', 'c', 'd' );
    $c = &new Combinatory('-');
    $riscontri = &$c->result( $possibilita, 2, "Cn,k" );
    
    echo '<pre>';
    var_dump( $riscontri );
    echo '</pre>';
    
    ?>


    output generato
    codice:
    array(6) {
      [0]=>
      string(3) "a-b"
      [1]=>
      string(3) "a-c"
      [2]=>
      string(3) "a-d"
      [3]=>
      string(3) "b-c"
      [4]=>
      string(3) "b-d"
      [5]=>
      string(3) "c-d"
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Originariamente inviato da dvds
    $array[] = 'a';
    $array[] = 'b';
    $array[] = 'c';
    $array[] = 'd';
    $array[] = 'e';

    for ($i = 0; $i < array_count_values($array); $i++) {
    for ($j = ($i + 1); $j < array_count_values($array); $j++) {
    echo $array[$i].' - '.$array[$j].'
    ';
    }
    }

    non l'ho provato, ma forse può funzionare
    Non funziona, crea un loop infinito.
    Poi il numero di elementi per estrazione deve essere variabile. Se fossero solo due elementi per estrazioni sarebbe facile, ma non è così
    http://www.quantumfoam.eu: The Italian Power Guild on Vanguard

  8. #8
    Originariamente inviato da RaMaR
    Non funziona, crea un loop infinito.
    Poi il numero di elementi per estrazione deve essere variabile. Se fossero solo due elementi per estrazioni sarebbe facile, ma non è così
    leggi il mio post, hai gia' la soluzione :sborò:
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Originariamente inviato da andr3a
    leggi il mio post, hai gia' la soluzione :sborò:
    ma è una mia impressione o della tua classe utili sono al massimo una decina di righe?

  10. #10
    Originariamente inviato da dvds
    ma è una mia impressione o della tua classe utili sono al massimo una decina di righe?
    stai sfottendo l'unico ad avere fatto una classe per calcolo combinatorio in phpclasses.org :rollo:


    tu continua con i for dentro i for a loop infinito



    [ non sai quanto c'ho messo e studiato per aver sfornato quel sunto di codice per automazione di regole matematiche che nemmeno conosco ]


    [ aggiungo che i commenti sono standard, simili alla doc di Java, problemi ??? ]


    [ a veder le cose gia' fatte pare tutto facile eh ? ]
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.