Kezdőoldal » Számítástechnika » Programozás » Létezik olyan program amivel...

Létezik olyan program amivel ilyen számokat generálhatok? Többi lent.

Figyelt kérdés

#program #szám generálás
2015. jan. 25. 11:37
1 2 3 4
 21/40 anonim ***** válasza:

Pythonban ez ennyi. A repeat után a 2-t annyira cseréled, amennyire akarod:


from itertools import product

for x in product('0123456789', repeat=2):

....print(''.join(x))

2015. jan. 25. 18:42
Hasznos számodra ez a válasz?
 22/40 A kérdező kommentje:
es a listazas eredmenyet ki is lehet masolni egy szoveg fajlba? ;)
2015. jan. 25. 19:09
 23/40 SimkoL ***** válasza:
Akkor végül is 0-tól egymillióig kellenek a számok nullával feltöltve az elejét nyolc karakterre és file-ba kiírni az egészet ?
2015. jan. 25. 19:42
Hasznos számodra ez a válasz?
 24/40 SimkoL ***** válasza:
bocs 100 millióig ? Az nem lesz csak egy 1 gigás file :)
2015. jan. 25. 19:52
Hasznos számodra ez a válasz?
 25/40 Ozmium42 ***** válasza:

Egyszerűbb pythonban:


n = a számjegyek száma


for i in range(10**n): print str(i).zfill(n)


n = 8-nál nálam már beállt, mint a gerely, de hátha erősebb géped van, mint nekem.

2015. jan. 25. 20:36
Hasznos számodra ez a válasz?
 26/40 anonim ***** válasza:

Ha Unix alapú rendszered van, akkor be lehet írni a terminálba hogy:

seq -w 99999999 > szamok.txt


Ha nem akkor dobj fel egy programozási nyelvet és szinte mindenhol 2-3 sor. Pythonban pl. ez a kód:

sum(open('szamok.txt','a').write('\n'.join(str(i).zfill(8) for i in range(j*10**5,(j+1)*10**5))) for j in range(10**3))


Olyan benga számokról van szó, hogy fel kellett darabolni kisebb blokkokra az írást hogy beleférjen a memóriámba :) Az eredeti kód pedig ez lett volna:

open('szamok.txt','w').write('\n'.join(str(n).zfill(8) for n in range(10**8)))


A fájl ~1GB lesz és le kéne tudnia futnia 1-2 perc alatt a programnak.


Kipróbáltam batch-ben is de nagyon lassú, úgyhogy kell egy programozási nyelv. Alternatív megoldásként mingw és cygwin is tartalmazza a seq alkalmazást. Ijesztő ez a thread :)

2015. jan. 25. 20:44
Hasznos számodra ez a válasz?
 27/40 A kérdező kommentje:
koszonom szepen :)
2015. jan. 25. 21:03
 28/40 SimkoL ***** válasza:

Azt mondtad a C++ érted :


#include <cstdlib>

#include <iostream>

#include <string>

#include <sstream>

#include <fstream>

#include <iomanip>


using namespace std;


int main()

{

stringstream ss;

ofstream out("output.txt");

cout << "Futás....." << endl;

for (int i = 0; i < 0x5F5E0FF; i++) //a szám hexa mert nem engedi a GYK kiírni

{

ss.str("");

ss << setw(8) << setfill('0') << i;

out << ss.str() << endl;

}

out.close();

system("PAUSE");

return 0;

}

2015. jan. 25. 21:13
Hasznos számodra ez a válasz?
 29/40 SimkoL ***** válasza:
Bár nem értem miért kell kiírni fájlba, nem egyszerűbb a programod futtatása közben generálni ?
2015. jan. 25. 21:21
Hasznos számodra ez a válasz?
 30/40 anonim ***** válasza:

#26 vagyok, elfelejtettem a blokkok közé soremelést írni, helyesen:

sum(open('szamok.txt','a').write('\n'.join(str(i).zfill(8) for i in range(j*10**5,(j+1)*10**5))+'\n') for j in range(10**3))


Csak egy +'\n'-el több.


SimkoL: a fájl szerintem azért kell mert egy dictionary-t akar csinálni egy program számára, de programozni nem tud hogy ezt legenerálja. Szerintem.

2015. jan. 25. 21:29
Hasznos számodra ez a válasz?
1 2 3 4

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!