Seite 2 von 2

Verfasst: 03.04.2008 18:53
von NicknameFJ
Erstmal Danke an alle, die sich hier beteiligt haben, echt eine SUPER Unterstützung hier im Forum :allright: !

Ich trinke dann für jeden von Euch ein Bierchen mit :lol: - müsst nur sagen was Ihr gerne trinken wolltet.

@Froggerprogger

Kannst Du den letzen Code in PB Syntax reinstellen, dann schaue ich mir die Tabelle mal an - ich hoffe Deine Signatur ( !UD2 ) ist dann nicht mit im Code drin

//Edit:

Hab´s grad in Guuuuuuckl gesehen was MAPLE eigenlich ist, ziehe daher meine vorherige Bitte zurück, kannst Du statt dessen die Tabelle reinstellen - Danke

// EndEdit:


//nochmal ich mit nem EDIT - sry war heute ein harter Tag

lass die Tabelle erst mal sein, ich kürze erst mal in der Procedure Binominal die ganzen Sachen

//EndEdit


Grüße

Joachim

Verfasst: 03.04.2008 20:15
von Froggerprogger
Erstmal Prost! (Wicküler) :D

Das mit der Tabelle ist gar kein Problem (< 5 min Aufwand inkl. Upload)

Dafür wäre aber sinnvoll, wenn du:
a) Höchstgrenzen für die Anzahl je Tiefe nennst ODER
b) Höchstgrenzen für die Kombinationen je Tiefe
UND
c) irgendein spezielles Format definierst, ansonsten würde ich sowas machen wie: Tiefe <Tab> Anzahl <Tab> Kombinationen

Code: Alles auswählen

...
2 <Tab> 13240 <Tab> 175297600
2 <Tab> 13241 <Tab> 175324081
...

Verfasst: 03.04.2008 20:19
von Kaeru Gaman
auch wenn ich nich geholfen hab, auf mich darfst du ein Elephants trinken... ;)

Verfasst: 03.04.2008 21:55
von NicTheQuick
Und auf mich darfst du ein Zischke Dunkel trinken.

Verfasst: 04.04.2008 16:30
von NicknameFJ
Hallöchen !

Ich hoffe Euch haben die Bierchen ebenso gemundet wie mir.

Ich habe die Procedure Binominalkoeefizient mal so geschrieben (nicht ganz auf meinem Mist gewachsen, aber nicht verraten)

Code: Alles auswählen


    Procedure.q binomialkoeffizient(n,k)
      
      If k = 0
        ProcedureReturn 1
      EndIf
      
      If k*2 > n
        Erg.q = binomialkoeffizient(n,n-k)
      Else
        Erg.q = n
        For i = 2 To k
          Erg.q = Erg.q *(n+1-i)
          Debug StrQ(Erg)
          Erg.q = Erg.q / i
        Next
        
      EndIf
      
      ProcedureReturn Erg.q
    EndProcedure
    
    
    
    Debug binomialkoeffizient(684,8)

Die Proc. liefert mit Quads mit Anzahl 684 und Tiefe 8 korrekte Ergebnisse, vermindert sich noch da im weiteren Verlauf bei GetNumKombinations ja nochmal multipliziert werden muss und auch hierbei kein Überlauf vorkommen sollte, aber ich glaube ich kann damit leben.

Verfasst: 05.04.2008 09:23
von NicTheQuick
Die Procedure hast du aus der Wikipedia. :wink:

Verfasst: 05.04.2008 11:18
von Froggerprogger
In dem Code wird der Fall k > n nicht berücksichtigt, in welchem der Binomialkoeffizient 0 liefern soll. Also müsste noch ein:

Code: Alles auswählen

     If k > n
       ProcedureReturn 0
     EndIf
zu Beginn eingefügt werden. Sonst wird im Fall Anzahl < Tiefe falsch gerechnet.

Mit Quads sollte es bis Anzahl 237 funktionieren.
(heute übrigens Franziskaner Alkoholfrei)

Verfasst: 05.04.2008 13:13
von NicknameFJ
@NickTheQuick:

Stimmt, der Algo ist aus WIKI - wollte Euch nicht noch mehr belästigen :lol: - war nur Spaß

@FroggerProgger:
Da hast Du recht, habe nur einfach den Algo aus WIKI umgesetzt ohne viel auf besondere Situtionen zu achten - Danke für den Hinweis, in Deiner ursprünglichen Umsetzung waren diese Prüfungen ja drin

Ich mag heute keine Alkoholfreies - morgen vielleicht