i bin gerade dabei ein turnierbaum aufzubauen, der variabel für verschiedene anzahlen von teams (8,16,32,64,etc)funktioniert.

das ganze mache i zunächst anhand einer tabelle. es funktioniert bei 4 und 8 teams auch ganz gut -> $maxteams auf 4 bzw 8 setzen.

setze i allerdings $maxteams auf 16, füllt er den unteren teil der tabelle falsch aus(analog bei 32 und 64)

so müsste bei "10-2", "14-2" und bei "12-3" statt bei "12-2" TEAM stehen.
dafür muss in der funktion turnier die formeln geändert werden, bin aber mitlerweile mit meinem latein am ende, könnt ihr mir da weiterhelfen?

PHP-Code:
<?php

    $maxteams 
"16";
    
    
$hoehe $maxteams-1;    
    
$breite log($maxteams,10)/log(2,10);
    print 
"höhe x breite: $hoehe x $breite <br><br>";

    print 
"<table border=\"1\">";

    for (
$zeile="1";$zeile<=$hoehe;$zeile++)
        {
            print 
"<tr>";        
            for (
$spalte="1";$spalte<=$breite;$spalte++) 
                {
                    
$potenz $spalte-1;
                    if ( 
$zeile == turnier ($zeile,$potenz))
                        {
                             print 
"<td>TEAM</td>";
                        }
                    elseif (
$zeile == $hoehe && $spalte == $breite)
                        {
                             print 
"<td>PLATZ 3</td>";    # spiel um platz 3
                        
}
                    else
                        {
                             print 
"<td>$zeile-$spalte</td>";
                        }
                }

            print 
"<tr>";
        }

    print 
"</table>";

    function 
turnier ($zeile,$potenz
        {
            
$i "1";
            for (
$i="0";$i<=7;$i++)
                {
                    
$A 2*$i;
                    
$B bcpow(2,$i+1,0);        
                    
$C $A+bcpow($B,$potenz,0);
                    if (
$zeile == $C
                        {
                            break; 
                        }
                }
            return 
$C;
        }

?>