
98641
09.04.2011
Zahlengenerator mit Batch
hallo,
weiß nicht mehr weiter
brauche einen generator mit batch der mir jegliche zahlen zusammen stellt
z.B.
ich habe die zahlen 1 2 3 dann soll er mir alle daraus formbaren Zahlen zusammen stellen
in dem fall
111 133 122 132 113 112 131 121 213 222 233 211 231 223 221 232 212 321 333 322
311 321 331 332 323 313 11 12 13 1 2 3 22 23 21 31 32
Vielleicht wisst ihr weiter.
Mit freundlichen Grüßen,
Michi
weiß nicht mehr weiter
brauche einen generator mit batch der mir jegliche zahlen zusammen stellt
z.B.
ich habe die zahlen 1 2 3 dann soll er mir alle daraus formbaren Zahlen zusammen stellen
in dem fall
111 133 122 132 113 112 131 121 213 222 233 211 231 223 221 232 212 321 333 322
311 321 331 332 323 313 11 12 13 1 2 3 22 23 21 31 32
Vielleicht wisst ihr weiter.
Mit freundlichen Grüßen,
Michi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 164259
Url: https://administrator.de/forum/zahlengenerator-mit-batch-164259.html
Ausgedruckt am: 09.04.2025 um 01:04 Uhr
9 Kommentare
Neuester Kommentar
Moin Michi12345,
normalerweise werden zur computergestützten Berechnung von Ergebnissen vier Ressourcen benötigt.
Du hast nun eine Aufgabe aus dem Kontext Kombinatorik gewählt oder gestellt bekommen.
Und kommst nun relativ schnell zu dem Schluss "weiß nicht mehr weiter".
Kann es sein, dass du die dritte der vier notwendigen Ressourcen ein bisschen zu flapsig geprüft hast?
Oder anders formuliert:
Rein spekulativ- was glaubst du bringt mehr Treffer bei einer Suchmaschine: die Kombination "Batch+Kombinatorik" oder "FDP+Sachertorte"?
In welchem Kontext und in welcher Form (Tabelle, Bildschirmanzeige, Fliesstext) brauchst du denn den Output und wofür (für welche Folgeverarbeitung)?
Grüße
Biber
normalerweise werden zur computergestützten Berechnung von Ergebnissen vier Ressourcen benötigt.
- einen definierten und beschreibbaren Input und Output
- eindeutige Verarbeitungsregeln (aka Algorithmus)
- ein geeignetes Programmierwerkzeug
- einen geduldigen Handwerker, der mit dem Werkzeug umgehen kann.
Du hast nun eine Aufgabe aus dem Kontext Kombinatorik gewählt oder gestellt bekommen.
Und kommst nun relativ schnell zu dem Schluss "weiß nicht mehr weiter".
Kann es sein, dass du die dritte der vier notwendigen Ressourcen ein bisschen zu flapsig geprüft hast?
Oder anders formuliert:
Rein spekulativ- was glaubst du bringt mehr Treffer bei einer Suchmaschine: die Kombination "Batch+Kombinatorik" oder "FDP+Sachertorte"?
In welchem Kontext und in welcher Form (Tabelle, Bildschirmanzeige, Fliesstext) brauchst du denn den Output und wofür (für welche Folgeverarbeitung)?
Grüße
Biber
Hallo Michi,
ich weiß zwar nicht, warum 1- und 2-stellige Zahlen auch zu den Kombinationsmöglichkeiten gehören sollen, aber so wie du es beschreibst, vielleicht so:
Grüße
rubberman
<edit>Hallo Biber. Mit 3-stelligen Zahlenkombinationen ist ja die Berechnungszeit auch noch überschauber, aber wehe es werden mehr
</edit>
ich weiß zwar nicht, warum 1- und 2-stellige Zahlen auch zu den Kombinationsmöglichkeiten gehören sollen, aber so wie du es beschreibst, vielleicht so:
@echo off &setlocal enabledelayedexpansion
for /l %%a in (0,1,3) do (
for /l %%b in (0,1,3) do (
for /l %%c in (1,1,3) do (
for /f "tokens=* delims=0" %%d in ("%%a%%b%%c") do echo %%d|findstr /v "0"
)
)
)
pause
rubberman
<edit>Hallo Biber. Mit 3-stelligen Zahlenkombinationen ist ja die Berechnungszeit auch noch überschauber, aber wehe es werden mehr
Moin rubberman,
auch für mich gehören die ein- und zweistelligen Werte nicht dazu.
Bei deinem Schnipsel ist die DelayedExpansion zwar nicht nötig, aber falls die ohnehin aktiv wäre, dann ginge auch dieser Oneliner:
[vom CMD-Prompt aus, führendes ">" gehört zu meinem Prompt]
Ausgabe:
Dennoch - die Aufgabe hat alles, was IT ad absurdum führt.
Eine aus dem Kontext gerissene Aufgabenstellung, Input und Output unklar definiert, Algorithmus intransparent, das falsche Werkzeug und keinen Plan, wer das umsetzt.
Aber wahrscheinlich Windows 7 64bit Dolby Surround.
Grüße
Biber
auch für mich gehören die ein- und zweistelligen Werte nicht dazu.
Bei deinem Schnipsel ist die DelayedExpansion zwar nicht nötig, aber falls die ohnehin aktiv wäre, dann ginge auch dieser Oneliner:
>@for /l %a in (0,1,3) do @for /L %b in (0,1,3) do @for /L %c in (1,1,3) do @set "x=%a%b%c" &@echo !x:0=!
Ausgabe:
1
2
3
11
12
13
21
22
23
31
32
33
11
12
13
111
112
...
333
Dennoch - die Aufgabe hat alles, was IT ad absurdum führt.
Eine aus dem Kontext gerissene Aufgabenstellung, Input und Output unklar definiert, Algorithmus intransparent, das falsche Werkzeug und keinen Plan, wer das umsetzt.
Aber wahrscheinlich Windows 7 64bit Dolby Surround.
Grüße
Biber
Hallo Biber.
Stimmt.
... erzeugt dafür ein paar Zeichenfolgen zu viel 
Völlig d'accord.
Grüße
rubberman
Stimmt.
@echo !x:0=!
Zitat von @Biber:
Dennoch - die Aufgabe hat alles, was IT ad absurdum führt.
Eine aus dem Kontext gerissene Aufgabenstellung, Input und Output unklar definiert, Algorithmus intransparent, das falsche
Werkzeug und keinen Plan, wer das umsetzt.
Aber wahrscheinlich Windows 7 64bit Dolby Surround.
Dennoch - die Aufgabe hat alles, was IT ad absurdum führt.
Eine aus dem Kontext gerissene Aufgabenstellung, Input und Output unklar definiert, Algorithmus intransparent, das falsche
Werkzeug und keinen Plan, wer das umsetzt.
Aber wahrscheinlich Windows 7 64bit Dolby Surround.
Völlig d'accord.
Grüße
rubberman
Moin rubberman,
hast recht, bei mir kommt viel zuviel heraus - keine Ahnung, warum ich so lieblos an diese Aufgabe herangegangen bin.
Dann nochmal vom CMD-Prompt als POC ohne Variablen und ohne DelayedFirlefanz.
P.S. Wo ist denn der Michi? Weint der immer noch?
Grüße
Biber
hast recht, bei mir kommt viel zuviel heraus - keine Ahnung, warum ich so lieblos an diese Aufgabe herangegangen bin.
Dann nochmal vom CMD-Prompt als POC ohne Variablen und ohne DelayedFirlefanz.
>@for /l %a in (1,1,3) do @(echo %a) & @for /L %b in (1,1,3) do @(echo %a%b) & @for /L %c in (1,1,3) do @echo %a%b%c
1
11
111
112
113
12
121
122
123
13
131
132
133
2
21
211
212
213
22
221
222
223
23
231
232
233
3
31
311
312
313
32
321
322
323
33
331
332
333
P.S. Wo ist denn der Michi? Weint der immer noch?
Grüße
Biber
Moin Michi12345,
Meist aber nur, wenn ich nicht in der Nähe bin, weil ich sehr schnell ausraste, wenn mir jemand ironisch kommt.
Egal, wenn du meine Fragen nicht beantworten willst, dann leg ich noch 'ne Schippe drauf, und zwar glühende Kohlen auf dein Haupt.
Zum Verständnis, was mein proof-of-concept-Oneliner macht, schau dir bitte die FOR/?-Hilfe am CMD-Prompt an.
For/L ist eine Zählschleife, die Zahlen VON-BIS durchnudelt. Vom DurchnudeLn ist das "L" hergeleitet
Als Batch geschrieben, damit die Struktur erkennbarer wird,und ein bisschen kommentiert sähe es so aus
Grüße
Biber
Zitat von @98641:
sorry das war nicht so gemeint, jedoch hätte ich dann nur für diese frage einen neuen Inhalt erstellen müssen und
das würde sich nicht lohnen, dachte ich
In meinem Freundes- und Bekanntenkreis werde ich oft "Biber der Geduldige" genannt.sorry das war nicht so gemeint, jedoch hätte ich dann nur für diese frage einen neuen Inhalt erstellen müssen und
das würde sich nicht lohnen, dachte ich
Meist aber nur, wenn ich nicht in der Nähe bin, weil ich sehr schnell ausraste, wenn mir jemand ironisch kommt.
Egal, wenn du meine Fragen nicht beantworten willst, dann leg ich noch 'ne Schippe drauf, und zwar glühende Kohlen auf dein Haupt.
Zum Verständnis, was mein proof-of-concept-Oneliner macht, schau dir bitte die FOR/?-Hilfe am CMD-Prompt an.
For/L ist eine Zählschleife, die Zahlen VON-BIS durchnudelt. Vom DurchnudeLn ist das "L" hergeleitet
@for /l %a in (1,1,3) do @(echo %a) & @for /L %b in (1,1,3) do @(echo %a%b) & @for /L %c in (1,1,3) do @echo %a%b%c
Als Batch geschrieben, damit die Struktur erkennbarer wird,und ein bisschen kommentiert sähe es so aus
@echo off && Rem Das @echo off ersetzt die vielen "@" im Oneliner.
REM In einer ZählschLeife mit Zählvariable %%a VON:1 BIS:3 mit Schrittweite:1 TUE
FOR /L %a in (1,1,3) DO (
REM zeige aktuellen Zählschleifenwert %%a der FOR-Anweisung
echo %%a
REM In einer ZählschLeife mit Zählvariable %%b VON:1 BIS:3 mit Schrittweite:1 TUE
FOR /L %%b in (1,1,3) DO (
REM zeige aktuellen Zählschleifenwert %%a und %%b der FOR-Anweisungen
echo %%a%%b
REM In einer ZählschLeife mit Zählvariable %%c VON:1 BIS:3 mit Schrittweite:1 TUE
FOR/L %%c in (1,1,3) DO (
REM zeige aktuelle Zählschleifenwerte %%a und %%b und %%c der FOR-Anweisungen
echo %%a%%b%%c
)
REM Ende der DO -Anweisung FOR mit Variable %%c
)
REM Ende der DO -Anweisung FOR mit Variable %%b
)
REM Ende der DO -Anweisung FOR mit Variable %%a
REM Ende des Batches und meiner Geduld.
Grüße
Biber