Combin

Anfängerfragen zum Programmieren mit PureBasic.
WeEf
Beiträge: 36
Registriert: 14.12.2004 23:12
Wohnort: Remscheid
Kontaktdaten:

Combin

Beitrag von WeEf »

Hallo,

in GFA-Basic kann man z. B.

X=Combin(49, 6)

verwenden und erhält das Ergebnis 13983816.
Gibt es das auch in PureBasic?
Wie lautet der entsprechende Befehl?
PureBasic 4.31
Windows 7

Gruß WeEf
Es ist noch kein Meister vom Himmel gefallen - vielleicht sind auch gar keine oben
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Erklär mal, was der Befehl genau errechnet.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ist doch ganz einfach:
Combin(n, k) Kombinationen, berechnet n! / k! / (n-k)! (n, k = iexp)
:freak:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Ich bin Schüler, und wir hazzen sowas in der Richtung noch nicht,
also verzeih mir nochmal mein Unwissen.


@WeEf:Einen entsprechenden Befehl gibts in Purebasic nicht
(höchstens in einer Lib) Aber du kannst dir ja eine Procedur schreiben.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Macros hat geschrieben:Ich bin Schüler, und wir hazzen sowas in der Richtung noch nicht,
also verzeih mir nochmal mein Unwissen.
Ich hab Schule und Ausbildung schon Jahre hinter mir, ich hatte sowas in der
Richtung auch noch nicht. Es sei Dir verziehen :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
WeEf
Beiträge: 36
Registriert: 14.12.2004 23:12
Wohnort: Remscheid
Kontaktdaten:

Beitrag von WeEf »

Code: Alles auswählen

Hoechstzahl = Val(InputRequester("Eingabe","Bitte Hoechstzahl eingeben:","") )
Reihen=Hoechstzahl*(Hoechstzahl-1)/2*(Hoechstzahl-2)/3*(Hoechstzahl-3)/4*(Hoechstzahl-4)/5*(Hoechstzahl-5)/6
Debug(Reihen)
Hallo,

ich habe mir bisher wie oben geholfen und gehofft, dass ginge irgendwie einfacher wie z. B. auch in Excel.
Wenn jemand weiß, wie das ohne speziellen Befehl einfacher geht, wäre ich natürlich auch dankbar.
Würde ich im obigen Beispiel, was mir lieber wäre, erst am Ende der Zeile durch 2/3/4/5/6 teilen, müßte ich Reihen.f nehmen, weil sonst das Ergebnis falsch ist.
PureBasic 4.31
Windows 7

Gruß WeEf
Es ist noch kein Meister vom Himmel gefallen - vielleicht sind auch gar keine oben
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Code: Alles auswählen

Hoechstzahl = Val(InputRequester("Eingabe","Bitte Hoechstzahl eingeben:","") )
Reihen=Hoechstzahl*(Hoechstzahl-1)/2*(Hoechstzahl-2)/3*(Hoechstzahl-3)/4*(Hoechstzahl-4)/5*(Hoechstzahl-5)/6
Debug Reihen

Procedure.l wasweissich(zahl.l)
ergebniss.l=zahl
For a=1 To 5
ergebniss=ergebniss*(zahl-a)/(a+1)
Next

ProcedureReturn ergebniss
EndProcedure


Reihen=wasweissich(Hoechstzahl)
Debug Reihen
WeEf
Beiträge: 36
Registriert: 14.12.2004 23:12
Wohnort: Remscheid
Kontaktdaten:

Beitrag von WeEf »

Hallo Macros,

danke!
Läuft einwandfrei, ist kürzer und sieht besser aus!
PureBasic 4.31
Windows 7

Gruß WeEf
Es ist noch kein Meister vom Himmel gefallen - vielleicht sind auch gar keine oben
Antworten