Új hozzászólás Aktív témák
-
Jester01
veterán
válasz
Gülredy #3289 üzenetére
Miért nem mondod egyszerűen, hogy lottó program kell
Ez amúgy totál triviális feladat. Véletlenszám generálást már ezerszer elmondtuk, és nem is az "a program lényege". A gyakoriság is nagyon egyszerű, fogsz egy 90 elemű tömböt és (akár menet közben) nyilvántartod benne hogy a számok hányszor fordultak elő. Végül megkeresed benne az 5 legkisebbet.
-
ArchElf
addikt
válasz
Gülredy #3257 üzenetére
De az érthetőség kedvéért while ciklussal is berakom
static string RandomizeWhile(string text)
{
Random rnd = new Random();
StringBuilder sbIn = new StringBuilder(text);
StringBuilder sbOut = new StringBuilder();
while(sbIn.Length > 0)
{
int rNumber = rnd.Next(sbIn.Length);
sbOut.Append(sbIn[rNumber]);
sbIn.Remove(rNumber, 1);
}
return sbOut.ToString();
}Amúgy ez lassabb megoldás (mivel az sbIn.Length értékét minden ciklusban kétszer is ki kell értékelni).
AE
-
ArchElf
addikt
válasz
Gülredy #3255 üzenetére
static string Randomize(string text)
{
Random rnd = new Random();
StringBuilder sbIn = new StringBuilder(text);
StringBuilder sbOut = new StringBuilder();
for (int ix = text.Length; ix > 0 ; ix--)
{
int rNumber = rnd.Next(ix);
sbOut.Append(sbIn[rNumber]);
sbIn.Remove(rNumber, 1);
}
return sbOut.ToString();
}AE
-
ubid
senior tag
válasz
Gülredy #2822 üzenetére
A túlterhelésre megoldás lehet például, hogy :
checked-el leellenörződ, hogy belefér e.
pl :int ten = 10;
int sum = 2147483647 + ten;
Console.WritLine(sum);
//Output : -2147483639Ezt nyilván túlcsordul.
Erre megoldás így néz ki :
Console.WritLine(checked(214748647 +ten));
checked
{
int o = 214748647 +ten;
Console.WriteLine(o);
}
Így kiváltódik a hiba : OverflowException
Ezt a hibát érdemes egy try-cath blokkal elkapni.Tehát belerakod az a kódsort amit le akarsz kezelni egy try blokkba.
static int CheckedMethod()
{
int z = 0;
try
{
z = checked(maxIntValue + 10);
}
catch (System.OverflowException e)
{
Console.WriteLine("Hohóóó túlcsordult.: " + e.ToString());
}
return z;
} -
kingabo
őstag
válasz
Gülredy #2810 üzenetére
Marha egyszerű: a switch ág előtt mindig létrehozol egy kosarat és ahhoz teszed hozzá. A main fv előtt deklaráld privát adattagként.
(#2811) ubid:
"Annyi biztos, hogy stringhez hozzáfűzni a String.Builder.Append -el lehetséges."Ahogy írtal úgy is lehet stringeket összefűzni.
-
ArchElf
addikt
válasz
Gülredy #2593 üzenetére
static bool helyiertek(int vizsgalt_szam, int helyiertek_szama)
{
int helyiertek_erteke = (1 << helyiertek_szama);
return (vizsgalt_szam & helyiertek_erteke) == helyiertek_erteke;
}A helyiérték 0-tól kezdődik (tehát az az első).
A << operátor balra tolja a számot (2^n szorzásnak felel meg).AE
-
válasz
Gülredy #2589 üzenetére
static bool masodikBitEgyes(int i)
{
return 2 == 2 & i;
}Egyebkent a te megoldasodban az x=x/2 jobbra shifteli a szamot (binaris alakban), kipottyan a legjobboldali bit, a jobbrol a masodik lesz az uj szamban jobboldali, ami azt jelenti, hogy a szam paros, ha 0, paratlan, ha 1.
-
Lacces
őstag
válasz
Gülredy #2461 üzenetére
A többiek jól mondják
Plusz, használj TryParse-t a Parse helyett
Magyarázat itt: Magyarázat itt AE-tól
-
WonderCSabo
félisten
válasz
Gülredy #2461 üzenetére
A % operátor a modulus operátor, nem az osztás eredményét adja vissza, hanem hogy mennyi a maradék. Pl. 5 % 2 == 1.
Ergó ez a kifejezés : x % x == 1 && x%1 == x semmilyen számra nem lesz igaz, hiszen egy számot önmagával leosztva a maradék mindig 0, illetve egyel osztva szintén.
Továbbá, a prímszákat a nem prímszámoktól az különbözteti meg, hogy a prímszámoknak pontosan 2 osztója van: 1 és önmaga. A nem prímeknek minimum 3.
"ha önmagával osztom akkor az 1, ha 1 el osztom akkor önmaga"
Ez minden számra igaz, nem csak a prímekre.
A prímség eldöntését első körben úgy szokták megírni, hogy egy ciklusban modulussal osztogatják a számot, és ha a modulus 0-át ad, akkor ugye egy osztót találtak. Ekkor a számlálót megnövelik egyel. A végén megnézik, hogy a számláló 2-e vagy sem.
-
Jester01
veterán
válasz
Gülredy #2411 üzenetére
Mivel ez egy előző feladatra épít, így aztán a feléről fogalmam sincs mit akar.
Úgyhogy csak a konkrét kérdésedre válaszolok:Például ezt a 1:100-hoz valószínűségű dolgot se tudom, hogy lehetne kivtelezni, mert jelenleg csak ezt ismerem Random r = newRandom(); number = r.Next(100); de ez csak 0-100 ig kiválaszt egy random számot az meg ide nem lenne jó.
Szerinted ez miért is nem lenne jó? Hiszen ez 100 lehetséges számot ad vissza, tehát egyenletes eloszlást feltételezve bármelyik szám valószínűsége 1%. Vagyis egy tetszőleges de állandó számmal összehasonlítva máris megkaptad ami kell.
-
st4rlight
csendes tag
-
ArchElf
addikt
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- HP Probook 440 G11 (9Y7Q2ET) - ÚJ 14" üzleti notebook - Core U5 , 512SSD
- HP Probook 440 G11 (AA0Y5ES) - ÚJ 14" üzleti notebook - Core U5 , Win11 pro
- iKing.Hu - Apple iPhone 14 Pro Max Stílusos erő, Pro kamera rendszerrel! 128GB - 3 hónap gari!
- Lenovo ThinkPad T480, T580, P51s, P52s, T480s belső akkumulátor eladó
- MacBook Pro M2 Pro 16 // 16/512 96%-os akkumulátor
- Apple iPhone 14 Pro Max / 256GB / Gyári független / 12Hó Garancia / 87% akku
- GYÖNYÖRŰ iPhone 13 256GB Midnight - 1 ÉV GARANCIA - Kártyafüggetlen, MS2227
- 8 GB-os Quadro RTX 4000 kártyák - garanciával
- Újra Akcióban!!! Ducky One 2 Mini és SF billentyűzetek a bolti ár töredékéért! Számla+Gari
- Önerő nélkül is. 1-16 hónap részletfizetés . Bankmentes. Gamer Laptopok , Gamer monitorok
Állásajánlatok
Cég: FOTC
Város: Budapest