Anzahl Schleifendurchläufe -> Kombinatorik

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Beitrag 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
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag 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
...
!UD2
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

auch wenn ich nich geholfen hab, auf mich darfst du ein Elephants trinken... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Und auf mich darfst du ein Zischke Dunkel trinken.
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Beitrag 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.
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Die Procedure hast du aus der Wikipedia. :wink:
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag 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)
!UD2
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Beitrag 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
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
Antworten