Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Programmieraufgaben Hier wird regelmäßig eine neue Programmieraufgabe gestellt, die dann gelöst werden soll und in Zusammenarbeit mit den Moderatoren auch besprochen werden kann.

Zahlen in zufälliger Reihenfolge

Diskussion: Zahlen in zufälliger Reihenfolge im Forum Programmieraufgaben, in der Kategorie Code Kitchen; Anzeige (eingereicht von Nimda05) Ziel: alle Zahlen von 0000 bis 9999 in zufälliger Reihenfolge in einer TXT Datei speichern, wobei ...

Like Tree6Likes

Antwort
Alt 31.07.07, 15:48   #1 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard Zahlen in zufälliger Reihenfolge

Anzeige

(eingereicht von Nimda05)
Ziel: alle Zahlen von 0000 bis 9999 in zufälliger Reihenfolge in einer TXT Datei speichern, wobei sich die Zahlen aber nicht wiederholen dürfen (sonst wäre es zu einfach ;) )
Bsp:

1234
2345
0001
9991
usw.

__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 31.07.07, 16:19   #2 (permalink)
IsNull
Guest
 
Likes:
Standard

AHK:
Code:
loop, 9999
  sList := sList . a_index . "|"

  Sort, sList, Random Z D|
  
 loop, parse,  sList, |
    fileappend, %a_loopfield%`n, result.txt
  
  msgbox File createt.
  Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 31.07.07, 16:31   #3 (permalink)
 
Registriert seit: 18.07.05
Nimda05 Leistung: Facit NTK
Likes: 0
Standard

Hallo!

Kannste die Ausgangsdatei mal posten?

Danke
Nimda05 ist offline   Mit Zitat antworten
Alt 31.07.07, 16:33   #4 (permalink)
IsNull
Guest
 
Likes:
Standard

jap:
Angehängte Dateien
Dateityp: txt result.txt (57,5 KB, 196x aufgerufen)
  Mit Zitat antworten
Alt 31.07.07, 18:35   #5 (permalink)
 
Registriert seit: 18.07.05
Nimda05 Leistung: Facit NTK
Likes: 0
Standard

theoretisch gut. praktisch leider noch nicht ganz ausgereift ;-)

zahlen wie "529" sind nicht erlaubt. es sollte heißen 0529
also immer 4-stellig das ganze
Nimda05 ist offline   Mit Zitat antworten
Alt 31.07.07, 18:41   #6 (permalink)
IsNull
Guest
 
Likes:
Standard

Naja. Ist ja keine Hexerei mehr.

Das gibt noch eine If abfrage, dann ist das gefixt. mom...

EDIT:

Code:
loop, 9999
  sList := sList . a_index . "|"

  Sort, sList, Random Z D|
  
 loop, parse,  sList, |
 {
  
    if strlen(a_loopfield) = 1
      newLine := 000 . a_loopfield
    Else if strlen(a_loopfield) = 2
      newLine := 00 . a_loopfield
    Else if strlen(a_loopfield) = 3
      newLine := 0 . a_loopfield
    Else if strlen(a_loopfield) = 4
      newLine := a_loopfield
    
    fileappend, %newLine%`n, result.txt
    
 }
msgbox File createt.
Könnte man noch eleganter lösen, aber ich bin grad aufm Sprung
Angehängte Dateien
Dateityp: txt result.txt (58,6 KB, 59x aufgerufen)
  Mit Zitat antworten
Alt 31.07.07, 21:27   #7 (permalink)
 
Registriert seit: 23.05.05
Xalon Leistung: Facit NTK
Xalon eine Nachricht über ICQ schicken
Likes: 0
Standard

Hmm da war CDW wohl schneller mitm reinstellen der Aufgabe ;D
Xalon ist offline   Mit Zitat antworten
Alt 31.07.07, 23:14   #8 (permalink)
 
Registriert seit: 12.01.07
Ivan Dolvich Leistung: Facit NTK
Likes: 0
Standard

@IsNull: Welche Sprache ist das?
Ivan Dolvich ist offline   Mit Zitat antworten
Alt 31.07.07, 23:45   #9 (permalink)
IsNull
Guest
 
Likes:
Standard

Schau nochmal das erstes Posting von mir in diesem Thread an....
  Mit Zitat antworten
Alt 01.08.07, 00:25   #10 (permalink)
 
Registriert seit: 12.01.07
Ivan Dolvich Leistung: Facit NTK
Likes: 0
Standard RE: Zahlen in zufällgier Reihenfolge

Hier ist auch meine Lösung in Groovy

Code:
List list = []
for (n in 0..9999) { list.add(String.format("%04d", n)) }
Collections.shuffle(list)
BufferedWriter out = new File("numbers.txt").newWriter()
list.each { out.writeLine(it) }
Ivan Dolvich ist offline   Mit Zitat antworten
Alt 01.08.07, 01:10   #11 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Standard

Code:
php -r 'for($i=0;$i<10000;$i++)$a[]=$i;shuffle($a);foreach($a as $b)echo str_pad(0,4,$b)."\n";'>numbers.txt
Ganz schön beknackt

[EDIT]
Noch ein bisschen kürzer
Code:
php -r '$a=range(0,10000);shuffle($a);foreach($a as $b)echo str_pad(0,4,$b)."\n";'>numbers.txt
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 01.08.07, 09:00   #12 (permalink)
Senior Member
 
Registriert seit: 16.11.05
Gnome Leistung: Facit NTK
Likes: 0
Standard

Code:
#!/usr/bin/perl
srand;@new = (); @old = 1 .. 9999;for( @old ){my $r = rand @new+1;push(@new,$new[$r]); $new[$r] = $_;}printf "@new\n";
Gnome ist offline   Mit Zitat antworten
Alt 01.08.07, 11:22   #13 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

In C++ ist das ganze schon ein wenig komplizierter...
Code:
#include <fstream>
using namespace std;

int main()
{
    ofstream out("./numbers.txt");
    int nums[10000];

    // Fill the numbers array
    for (int i = 0; i < 10000; ++i) {
        nums[i] = i;
    }

    // Sort it by random
    srand(time(0));
    for (int i = 0; i < 10000; ++i) {
        int moveto = rand() % 10000;
        int tmp = nums[moveto];
        nums[moveto] = nums[i];
        nums[i] = tmp;
    }

    // Now put it in the text file
    for (int i = 0; i < 10000; ++i) {
        out.fill('0');
        out.width(4);
        out << nums[i] << '\n';
    }
}
Eydeet ist offline   Mit Zitat antworten
Alt 01.08.07, 13:50   #14 (permalink)
Gulliver
Guest
 
Likes:
Standard

Wirklich unfair dieses "shuffle"
  Mit Zitat antworten
Alt 02.08.07, 17:10   #15 (permalink)
 
Benutzerbild von mauralix
 
Registriert seit: 17.04.06
mauralix Leistung: 8086
Likes: 3
Standard

Eydeet hats eigentlich schon angewandt, aber hier nochmal eine shuffle-Funktion für int-Arrays in C.

Code:
void shuffle(int *data,int count)
{    
     int pos1,pos2,temp;    
     for(int i=0;i<count;i++)
     {
             pos1=rand()%count;
             pos2=rand()%count;
             temp = data[pos1];
             data[pos1]=data[pos2];
             data[pos2]=temp;            
     }
}
mauralix ist gerade online   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Programmieraufgaben » Zahlen in zufälliger Reihenfolge
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Arabische Zahlen in Römische Zahlen konvertieren in C Mjoelnir Code Kitchen 6 11.02.10 15:06
Reihenfolge der Komponenten beim PC Zusammenbau CDW Programmieraufgaben 2 24.12.08 20:22
Reihenfolge der via DHCP zugewiesenen DNS-Server bitmuncher Windows 12 20.08.07 11:07
Reihenfolge in GB-Einträgen zeitlich sortieren tine (Web-) Design und webbasierte Sprachen 16 18.02.06 15:45
SCSI Boot Reihenfolge Javanoth Hardware Probleme 13 22.08.03 20:47


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61