Kezdőoldal » Számítástechnika » Programozás » C#-ban egy vektort hogy...

C#-ban egy vektort hogy töltsek fel random számokkal úgy, hogy a számok növekvő sorrendben legyenek?

Figyelt kérdés

2014. szept. 26. 09:45
1 2
 1/11 anonim ***** válasza:
51%

Elmented egy változóba az utolsó random számot, és a következő elemet csak akkor adod hozzá, ha az új szám nagyobb az előzőnél.


VAGY


Feltöltöd random számokkal és utána rendezed a vektort.

2014. szept. 26. 09:47
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
0%
Vagy úgy generálod a random számokat, hogy az N. random számhoz hozzáadod az (N-1).-et.
2014. szept. 26. 10:03
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:
51%

Vagy az elsőt (N=0) legenerálod így: t[0] = Random.Next(Int32.MinValue, Int32.MaxValue);


N>0 -ra pedig így:

t[N] = Random.Next(t[N-1], Int32.MaxValue);


Bár szerintem az a megoldás lenne a "legkorrektebb", ha először generálnál x random számot, aztán rendeznéd a vektort.

2014. szept. 26. 10:10
Hasznos számodra ez a válasz?
 4/11 anonim ***** válasza:

using System;

using System.Collections.Generic;


namespace RNDVector

{

class Program

{

public static void Main(string[] args)

{

int[] Vector = GetArray(100,1,1000);


Array.Sort(Vector);


for (int i=0;i<Vector.Length-1;i++) Console.Write(Vector[i]+", ");


Console.Write("Press any key to continue . . . ");

Console.ReadKey(true);

}


private static int[] GetArray(int n, int lower, int upper)

{

Random rnd = new Random();

List<int> list = new List<int>();

for (int ctr = 1; ctr <= n; ctr++)

list.Add(rnd.Next(lower, upper + 1));

return list.ToArray();

}

}

}

2014. szept. 26. 10:26
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:
100%

A) Rendezetlen listába gyűjtöd a véletlen számokat, majd növekvő sorrendbe rendezed (Array.Sort)


B) Rendezett listába gyűjtöd a véletlen számokat oly módon, hogy az épp legenerált értéket rögtön a megfelelő helyre szúrod be ( [link]

2014. szept. 26. 10:54
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

Csak az a megoldás jó, hogy legenerálod a szükséges szűmú véletlenszámot MAJD rendezed a tömböt.


Ha úgy csinálod, hogy csak a korábbiaknál nagyobbakat hagyod meg, akkor azok nem lesznek igazán véletlenszámok (nem lesznek fügetlenek egymástól), mert a későbbiek függnek a korábbiaktól.

Ha nem hiszed el, szimulálj véletlenszám sorokat mindkét módszerrel és hasonlíts össze az átlagukat: az első (helyes) módszerrel az átlaguk alacsonayabb lesz, mint a másodikkal.

2014. szept. 26. 12:17
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:
Az 5-ös válaszban az A, és a B, módszer is jó.
2014. szept. 26. 12:20
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:

Ránézésre véletlenek lesznek, nem volt szó arról, hogy "tökéletes" véletlen számokat generáljunk, szerintem a növekvő sorrenden volt a hangsúly.


Az átlagukat pedig knrvaegyszerűen lehet korrigálni, kisebb tartományban generáljuk a random számot, és úgy adunk össze.


De pontozzatok le most is. :*

2014. szept. 26. 12:35
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:
Egy idióta pontoz itt.
2014. szept. 26. 13:22
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:

Köszönöm a válaszokat!

Amúgy aki azt a hosszú forráskódot írta: Szerintem fölösleges volt!

Úgy vettem észre hogy bőven elég az Array.Sort(vektor);

2014. szept. 26. 14:52
1 2

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!