 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
andyx
Anmeldungsdatum: 24.04.2005 Beiträge: 13
|
Verfasst am: 26.04.2005, 15:24 Titel: |
|
|
WAS FÜR EIN ROMAN !!! |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 26.04.2005, 23:22 Titel: |
|
|
Hallo
Tut mir leid, das ist wohl zu hoch für mich. Du bildest aus sieben Zahlen sieben verschiedene Tippreihen aus je sechs Zahlen (mehr geht ja nicht, jede der sieben Zahlen kommt dann je einmal nicht vor). Dann werden aus 49 Kugeln 14 gezogen, von denen drei sicher in deinen sieben getippten enthalten sind. Dann hättest du sicher sechs dreier und fertig. Ich versteh's nicht.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
andyx
Anmeldungsdatum: 24.04.2005 Beiträge: 13
|
Verfasst am: 27.04.2005, 11:57 Titel: |
|
|
nein, nein....
aus 49 werden 6 gezogen; ich tippe 7; ich müßte also im vollsystem 7 tippreihen mit je 6 kreuzchen abgeben.
würden sich nun unter meinen sieben getippten tatsächlich 3 richtige (unter den gezogenen 6) befinden, so hätte ich (im vollsystem) vier (4)
Dreier - nicht sieben - nicht sechs - nicht fünf....
nun geht es aber ja darum, (mindestens) EIINEN (1) Dreier zu garantieren, wenn unter meinen getippten 7 sich auch 3 richtige befinden.
im fall 3 von 6 aus 7 von 49 (uahhh!!!) wären es 4 (vier) tippreihen, die diese vorgabe erfüllen... (brauchst es nicht auszuprobieren!!!)
mir hat die kombinatorik genug nerven gekostet und das entsprechende programmieren ebenso.
wenns' dich interessiert.....
ich habe mir jetzt mal freebasic runtergeladen - und habe keinen plan, wie ich das zum laufen bring'111
kannst du mir helfen???
gruß andyx |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
Verfasst am: 27.04.2005, 13:39 Titel: |
|
|
So kompilierst du deine BAS-Datei mit dem FreeBASIC-Compiler:
Möglichkeit 1:
einfach in DOS eingeben: FBC BasName.bas
Möglichkeit 2:
die BAS-Datei auf die FBC.EXE drauf ziehen. Allerdings werden dann Fehler nicht unbedingt ausgegeben
Möglichkeit 3:
Du lädst dir eine grafische Benutzeroberfläche für FreeBASIC runter (GUI), wo du dann einfach auf Compilieren klicken kannst.
Zum Beispiel diese oder diese.
Grüßle,
Mecki
PS: Vorher Install.bat starten, um das gedownloadete FreeBASIC 0.13b auch zu installieren Das dauert seine Zeit. _________________ » Yodl.de: So sucht man gestern.
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de |
|
Nach oben |
|
 |
andyx
Anmeldungsdatum: 24.04.2005 Beiträge: 13
|
Verfasst am: 27.04.2005, 18:57 Titel: |
|
|
danke mecki,
install hab' ich schon gestartet - hat auch entsprechend gedauert...
o. k.
jetz' lad' ich mir so 'be oberfläche runter...
..und dann werd' ich mich wieder melden...
thanx |
|
Nach oben |
|
 |
andyx
Anmeldungsdatum: 24.04.2005 Beiträge: 13
|
Verfasst am: 27.04.2005, 19:34 Titel: |
|
|
o.k. freebasic läuft mit dem zweiten von dir genannten link.
aber arschlangsam...
da "hüpft" auf dem ausgabebildschirm ein Cursor herum...
das wird die janze ausjabe verlansamen, nech?
anyway... so wie's ausschaut, ist freebasic langsamer als QB4.5 - ich probier mal ein bisschen rum... |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 27.04.2005, 20:52 Titel: |
|
|
wenn du die verzögerungen mit FOR-Schleifen erzeugst is das auf FB zu schnell weil FB deutlich schneller ist als QB45 dann steig auf TIMER-Konstrukte um, ich denk ma, der geht bei FB genauer als 56ms.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
andyx
Anmeldungsdatum: 24.04.2005 Beiträge: 13
|
Verfasst am: 28.04.2005, 13:00 Titel: |
|
|
Hello MisterD,
ersma danke für anword unso...
... wie meinst du das genau???
außerdem habe ich in freebasic noch'n problem: wie schauen denn die befehle für dateien aus - sequentielle, relative, input#, get# put# usw.?
kannst du mir da weiterhelfen??? |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 28.04.2005, 15:49 Titel: |
|
|
freeBASIC ist zu QuickBASIC kompatibel, => es müsste auch so klappen.
jb |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 28.04.2005, 16:40 Titel: |
|
|
also du wirst ja irgendwie verzögerungen eingebaut haben, oder?
wenn du die so gemacht hast:
Code: | DO //programm hauptschleife
//programzeugs
for n = 1 to 100000: next n //verzögerung
LOOP //hauptschleife Ende |
oder so dann mach da draus mal
Code: | DO //programm-hauptschleife
t=timer //verzögerung vorbereiten
//programmzeugs
do:loop until t+0.03 < timer //verzögerung durchführen
LOOP //hauptschleife ende |
das gibt dir 33 frames pro sekunde.. egal auf welchem system. Das Problem ist, dass bei der ersten schleife die verzögerung stark vom Compiler, der Platform und dem PC abhängt. bei der 2. Variante is das alles egal (solang der PC nicht zu lahm ist), das dauert immer gleich lang.
Ich würde nämlich schätzen, dass FB um einiges schneller arbeitet als QB.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 28.04.2005, 18:09 Titel: |
|
|
Nicht zu vergessen, dass FB auch die Möglichkeit bietet, Millisekunden zu warten.
QB's SLEEP 1 wartet eine Sekunde.
In FB erzeugt diese Zeile eine Wartezeit von 1 msek, was für Animationen besonders geeignet ist.
Nur einer von vielen Vorteilen, auf die du stoßen wirst  _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
andyx
Anmeldungsdatum: 24.04.2005 Beiträge: 13
|
Verfasst am: 30.04.2005, 14:30 Titel: |
|
|
AVE !!!
"voll kompatibel" scheint freebasic doch nicht zu sein; ich hab' ein kleines testprogramm mit allen von mir verwendeten befehle (in sinnvoller abfolge) in freebasic erstellt.
kleinere probleme (wie z. B. goto-schleifen etc.) sind schnell gelöst, aber mit Dateizugriffen komme ich nicht klar;
wie schaut denn ein befehl in freebasic aus, der in QB auf Relativ-Dateien zugreift???
in QB ist das einfach (warscheinlich auch in FB, wenn man's weiß): eben mit PUT-/GET -Anweisungen... und die entsprechenden Befehle zum Öffnen einer Datei blabla...
...und dann nochmal zu den Verzögerungen; da weiß ich zu wenig drüber - kann mir irgendwer das 'mal einigermaßen idiotensicher erklären (warum braucht man die, wie schauen die genau aus, was machen die usw...)
danke ciao |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 30.04.2005, 16:37 Titel: |
|
|
Unter FB gibts immer noch die Befehle GET/PUT, auch auf Dateizugriffe. Bin mir aber ned ganz sicher, ob die auch bei RANDOM-Files funzen, auf jeden fall aber gehn se mit BINARY.
Überhaupt solltest du von RANDOM auf die sequentiellen Modi bzw BINARY umsteigen, weil RANDOM die ganze angelegenheit eher komplizerter als einfacher macht.
Du wirst auch bei anderen Befehlen noch kleine Unterschiede entdecken, z.B. CIRCLE. Das hängt z.T. mit Funktionserweiterungen/einschrängkunen zusammen, andere haben einfach nur eine etwas andere Arbeitsweise.
Circle z.B. zeichnet einen um 1 größeren Kreis als QB, und kann außerdem ausgemalte Kreise zeichnen.
Sieh dir einfach die Referenz an (www.freebasic.de), oder lade sie dir gleich runter (auf feeleasy.net) _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
ah8982

Anmeldungsdatum: 11.09.2004 Beiträge: 62 Wohnort: Ba-Wü
|
Verfasst am: 02.05.2005, 08:56 Titel: Re: zuuu laaaangsaaaam |
|
|
andyx hat Folgendes geschrieben: | hallo ersma...
hab' ein mehr oder weniger ungefähr einigermaßen schweres Problem: QUICK-BASIC IST ZU LANGSAM !!!
genauer: ich hab' mir ein paar programme geschrieben, die ungeheure Datenmengen bearbeiten.
Die Programme (und auch die Daten) sind auf's minimum abgespeckt. Es handelt sich dabei um Programme, die mit Wahrscheinlichkeiten bzw. Stochastik arbeiten - daher auch die immensen Datenmengen.
Wenn ich also bestimmte programme starte, so arbeiten sie (wie sie ja sollen) völlig erwartungsgemäß - eben nur mit einem klitzekleinen, fast vernachlässigenswerten Haken: ich müßte, um ergebnisse zu erhalten, teilweise Jahre (!!! eine laufzeit, die ich nur ungefähr ausrechnen kann, sich aber durchaus in (nicht) erwartbaren zeitrahmen bewegt - so lange kann man einfach keinen computer laufen lassen!!!) warten.
Was also könnte ich tun?!?
Mir nutzt wenig, QB im DOS-Modus laufen zu lassen; also gibt es nur noch eine andere möglichkeit: eine andere Sprache (vielleicht Kesuaheli?!?)...
ernsthaft: gibt es irgendeine möglichkeit, ein QB-Programm quasi zu "übersetzen" in eine andere Programmiersprache, die deutlich schneller abgearbeitet werden kann???
Und, wenn ja, wie geht'n das???
hoffentlich weiß das einer, hoffentlich, hoffentlich, bitte, ich tu' fast alles dafür... |
Wenn du mir den Quellcode deines QB-Programms gibst, kann ich versuchen es dir in Visual Basic 6 (ist dann für Windows) zu portieren. Das dauert allerdings etwas länger. Vielleicht wirste dann mit der Geschwindigkeit zufriedener sein. Wenn nicht, wars ein Versuch Wert.  |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 07.05.2005, 15:52 Titel: hmpf... |
|
|
So, andyx, ich muss auch mal was sagen. Nette idee dein programm, um lottozahlen zu berechnen, aber, WÜRDEST DU BITTE BITTE BITTE ENDLICH DEN QUELLCODE posten?? Ich meine, dass alle hier etwas für dich tun könnten, wenn du den quellcode postest.
-------------------------------
psy
-------------------------------
PS: Ich hatte ads geschwindigkeitsproblem auch mal, aber das hat sich leicht lösen lassen.
Ich brauch keinen 4 Mhz zum übern, ich progge regelmäßig auf einem 18 Mhz rechner, der genau 24 schleifen in der sekunde schafft und nur einen timer mit je 1 sekunde PING-Zeit....
PSS: FRAGE: Wie schaffe ich es, auf so einem ding, eine kkürzere zeit als eine sekunde zu stoppen??  |
|
Nach oben |
|
 |
ah8982

Anmeldungsdatum: 11.09.2004 Beiträge: 62 Wohnort: Ba-Wü
|
Verfasst am: 08.05.2005, 16:08 Titel: Re: hmpf... |
|
|
psygate hat Folgendes geschrieben: | So, andyx, ich muss auch mal was sagen. Nette idee dein programm, um lottozahlen zu berechnen, aber, WÜRDEST DU BITTE BITTE BITTE ENDLICH DEN QUELLCODE posten?? Ich meine, dass alle hier etwas für dich tun könnten, wenn du den quellcode postest.x |
Der Meinung bin ich auch!!! |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 09.05.2005, 01:51 Titel: |
|
|
Hallo
Ich versuche es auch nochmal. Du tippst insgesamt x verschiedene Zahlen. Dann werden y Zahlen gezogen von den z richtig sind. Du willst jetzt wissen wieviele und welche Tipps nötig sind, um zu garantieren, dass die z richtigen mindestens einmal dabei sind. Wenn das so richtig ist, habe ich ein Programm geschrieben das diese Mindestanzahl berechnen kann. Es ist nicht sehr schön und bietet sicher noch viel Optimierungsmöglichkeiten, aber vielleicht ist der Ansatz interessant. Die Zahlen werden in Bitmuster umgewandelt was es möglich macht durch eine AND-Verknüpfung zu überprüfen, ob die eine Kombination in der anderen enthalten ist. Verknüpfungen sind "assemblerfreundlicher" und deshalb relativ schnell in der Ausführung.
Ich bekomme zwar beim Einsetzen von 7 getippten, 6 gezogenen und drei richtigen Zahlen ein Minimum von 4 Kombis, bei 8 jedoch schon 10 und bei 9 bekomme ich 20 raus und nicht wie du früher geschrieben hast 4 und 7. Wenn ich mir die Bitmuster ansehe, scheint das aber zu stimmen. Bei 8 getippten wären die 10 Kombis z.B.:
123456
123457
123467
123567
123458
123468
123568
123478
123578
123678
Andere Kombinationen wären auch möglich, aber 10 müssten es mindestens sein.
Und hier das Programm:
Code: | CLS
DIM bitwert&(30)
DIM wert&(4494)
DIM ist&(4494)
DIM merk%(4494)
FOR a = 0 TO 30
bitwert&(a) = 2 ^ a
NEXT
INPUT "Anzahl der gezogenen Zahlen"; gz%
INPUT "Anzahl der getippten Zahlen"; sz%
INPUT "Anzahl der richtigen Zahlen"; tz%
min& = 2 ^ tz% - 1
max& = 2 ^ sz% - 2 ^ (sz% - tz%)
szm% = sz% - 1
dkombi& = 0
FOR z& = min& TO max&
g% = 0
FOR bit% = 0 TO szm%
IF (z& AND bitwert&(bit%)) = bitwert&(bit%) THEN g% = g% + 1
IF g% > tz% THEN EXIT FOR
NEXT
IF g% = tz% THEN wert&(dkombi%) = z&: dkombi% = dkombi% + 1
NEXT
dkombi% = dkombi% - 1
min& = 2 ^ gz% - 1
max& = 2 ^ sz% - 2 ^ (sz% - gz%)
szm% = sz% - 1
kombi& = 0
FOR z& = min& TO max&
g% = 0
FOR bit% = 0 TO szm%
IF (z& AND bitwert&(bit%)) = bitwert&(bit%) THEN g% = g% + 1
IF g% > gz% THEN EXIT FOR
NEXT
IF g% = gz% THEN
k& = k& + 1
FOR a% = 0 TO dkombi%
IF (ist&(a%) = 0) AND ((wert&(a%) AND z&) = wert&(a%)) THEN ist&(a%) = z&
NEXT
END IF
NEXT
PRINT "Zahl der moeglichen kombis:"; k&
mintipp% = 0
FOR a% = 0 TO dkombi%
IF merk%(a%) = 0 THEN
mintipp% = mintipp% + 1
FOR b% = a% TO dkombi%
IF ist&(b%) = ist&(a%) THEN merk%(b%) = 1
NEXT
END IF
NEXT
PRINT "Mindestanzahl Tipps um alle Gewinnkombis abzudecken:"; mintipp%
|
Anzahl der gezogenen Zahlen wäre beim Lotto 6, die getippten wären dann z.B. 7,8 ,9 u.s.w. und die richtigen Zahlen wären beim Dreier eben 3. Um sich die passenden Tppreihen anzeigen zu lassen, müsste man zuvor noch alle getippten Zahlen eingeben (z.B. 7 aus 49 beim Lotto) und die Bitmuster der gefundenen Kombis diesen Zahlen entsprechend zuordnen.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 09.05.2005, 20:42 Titel: FreeBasic ist "geil" schnell! |
|
|
Hallo andyx,
warum erkundigst du dich so intensiv nach Dateioperationen?
Benutzt du die Festplatte als Zwischenspeicher großer Datenmengen, die dann in kleinen Häppchen aus den Dateien geholt und durchsucht/verglichen werden?
Das dauert ewig und würde mir die Rechenzeit von einem Jahr, wie du es am Anfang schriebst, erklären.
Dann wird sich auch mit anderen Programmiersprachen nichts verbessern.
Auch um die Grenzen von FreeBasic einmal anzutesten habe ich ein kleines Programm erstellt, das alle Mutationen der Lottozahlen in einem Array (14.000.000 x 6 Integerzahlen) erstellt und anschließend durchsucht.
(Hallo Skilltronic, das ist keine Konkurenz zu deinem Programm. Soweit wie du den Erklärungen von andyx nachgegangen bist, habe ich nicht folgen können.)
Code: | 'erstellen eines Array von 14.000.000 x 6 Integerzahlen
Dim L (14000000 ,5) As Integer
Dim i As Integer, g As Integer
Dim a As Integer, b As Integer, c As Integer
Dim d As Integer, e As Integer, f As Integer
g=49
i=0
' füll das Array mit allen Ziehungsmustern 6 aus 49
Print Time$
For a = 1 To g-5
For b = a+1 To g-4
For c = b+1 To g-3
For d = c+1 To g-2
For e = d+1 To g-1
For f = e+1 To g
i =i + 1
L(i,0) = a
L(i,1) = b
L(i,2) = c
L(i,3) = d
L(i,4) = e
L(i,5) = f
Next f
Next e
Next d
Next c
Next b
Next a
Print "verdisch..", i
Print Time$
'suche eine bestimmte Kombination
a=0
For a =1 To i
If l(a,0)=(g-11) Then
If l(a,1)=(g-9) Then
If l(a,2)=(g-8) Then
If l(a,3)=(g-7) Then
If l(a,4)=(g-3) Then
If l(a,5)=(g-1) Then
Print l(a,0);l(a,1);l(a,2);l(a,3);l(a,4);l(a,5)
Exit For
End If
End If
End If
End If
End If
End If
next
Print "verdisch..", a
Print Time$
Sleep |
Oh , der Rechner (AMD Sempron 1200 Mhz /220 MB RAM) bemühte die Festplatte doch ganz erheblich. Windows lagerte offensichtlich jede Menge Daten auf die HD aus. Klar, das gefüllte Array hatte ca. 320MB und dann dauerte die Suche 2 Minuten.
17:52:39 'Start
verdisch.. 13983816 'Kombinationen 6 aus 49
17:52:59
38 40 41 42 46 48 'diese Zahlenkombination wurde gesucht
verdisch.. 13983119 'fast am Ende wurde sie gefunden
17:54:32 'Ende
Als die Datenmenge halbiert wurde (nur 6 aus 44, = 160MB) dauerte erstellen und suchen (keine Auslagerung auf die HD) nur 1 Sekunde!!!
18:29:00
verdisch.. 7059052
18:29:01
33 35 36 37 41 43
verdisch.. 7058355
18:29:01
Erkenntnis:
1. FreeBasic ist "geil" schnell!
2. Daten möglichst im RAM halten, wenn es schnell gehen soll!
Gruß
Volta _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|