Kezdőoldal » Számítástechnika » Programozás » Meg lehet oldani egyszerűbben?

Meg lehet oldani egyszerűbben?

Figyelt kérdés

Még csak most tanulom a programozás. Meg lehet ezt a kis programot írni egyszerűbben is, mert mire befejeztem már majdnem, hogy én is belegabalyodtam.


[link]



2016. febr. 11. 14:01
1 2 3 4 5
 31/47 A kérdező kommentje:
OFF: Mire írtad az atyaúristent?
2016. febr. 11. 17:42
 32/47 anonim ***** válasza:
Egy for ciklussal töltöd fel a tömböt. Remélem tanultad, ha nem, akkor bocs. Anélkül marad, hogy a különböző gányolós megoldások közül választasz egyet.
2016. febr. 11. 18:21
Hasznos számodra ez a válasz?
 33/47 A kérdező kommentje:

for ciklus meg van:


for (mit,honnan;meddig;hogy)

{


}

2016. febr. 11. 18:35
 34/47 A kérdező kommentje:
Csak mi legyen benne, amivel feltöltöm a tömböt?
2016. febr. 11. 18:35
 35/47 anonim ***** válasza:

1. A goto átláthatatanná teszi a kódot, ha egy kódot többször kéne leírni, akkor kell függvényeket/eljárásokat használni.


2. Tölts fel egy tömböt 1-től 90-ig, keverd meg és vedd ki az első ötöt, minden más gányolás...hát barátom, nem tudom milyen rendszereket programozol, de szerintem ez a megoldás kifejezetten nem effektív: minek foglaljak le 90 számnak helyet a memóriában, ha nekem 5 kell? Futásidő szempontjából sem túl kellemes feltölteni egy 90 elemű tömböt, összekavarni valamilyen algoritmussal megint eléggé költséges, minek ezt végig csinálni?


Kérdező: ha ezt a megoldást választod, akkor úgy tudod feltölteni a tömböt, hogy egy for ciklusban végigléptetsz egy változót 1-től 90-ig és mindig a tömb i-edik elemének az i-t adod értékül.


Amúgy a legszebb megoldás, hogy csinálsz egy annyi elemű tömböt, ahány számot sorsolni akarsz, majd mindig generálsz egy random számot, majd megnézed, hogy van-e már olyan a tömbben, ha nincs, akkor beleteszed és ezt addig csinálod, amíg meg nem telik a tömb!

2016. febr. 11. 18:53
Hasznos számodra ez a válasz?
 36/47 A kérdező kommentje:

A feltöltésre már rájöttem :)

Már csak az összekeverés kell.


Ahogy olvasgatom már van 3-4 megoldás. Minél több annál jobb. :)

2016. febr. 11. 19:00
 37/47 A kérdező kommentje:
Lehet az a legjobb ha a félre rakom egy hónapra.
2016. febr. 11. 19:10
 38/47 anonim ***** válasza:
Miért nem rögtön egy évre?
2016. febr. 11. 19:32
Hasznos számodra ez a válasz?
 39/47 A kérdező kommentje:
Azért rakom félre egy hónapra (de lehet egy évre raknám jobb lenne), mert tanulom tovább. Úgy könnyebb lesz második nekifutásra. Az oop-ről is épp hogy tudok valamit jelenleg (összesen kb. a nevét :) ).
2016. febr. 11. 20:41
 40/47 anonim ***** válasza:

Aki szerint ineffektív a kavargatás, az meggyőződhet róla, hogy nem az.


using System;

using System.IO;


namespace ConsoleApplication1

{

class Program

{

private static int[] m_numbers_1_90 = new int[90];

private static readonly Random m_rng = new Random();

static void Main(string[] args)

{

for (var i = 0; i < m_numbers_1_90.Length; i++)

{

m_numbers_1_90[i] = i + 1;

}


using (StreamWriter sw = new StreamWriter("lotto_szamok.txt"))

{

for (var i = 0; i < 1000000; i++)

{

ShuffleFirstN(5, m_numbers_1_90, m_rng);

for (var j = 0; j < 5; j++)

{

sw.Write(m_numbers_1_90[j] + " ");

}

sw.WriteLine();

}

}

}


public static void ShuffleFirstN(int n, int[] container, Random rng)

{

for (var i = 0; i < n; i++)

{

var randomIndex = rng.Next(i, container.Length - 1);

var temp = container[i];

container[i] = container[randomIndex];

container[randomIndex] = temp;

}

}

}

}

2016. febr. 11. 21:54
Hasznos számodra ez a válasz?
1 2 3 4 5

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!