ezabillentyuzetegyszar

This commit is contained in:
Lendaia Mirai
2025-11-06 01:33:59 +01:00
parent 34f4a2eab3
commit 0484b1fd83
3 changed files with 308 additions and 174 deletions

89
ALGA/Class1.cs Normal file
View File

@@ -0,0 +1,89 @@
using System;
using System.Collections.Generic;
namespace OE.ALGA;
public static class Class1
{
public static void Cheatsheet()
{
//deklaráció
int asd;
//értékadás
asd = 2;
//egyben
int lol = 2;
//adat típusok
int egesz = 1;
double tort = 2.2;
string szoveg = "gooning";
bool eldontendo = true;
int[] tomb; //ez egy int típusú tömb de lehet bármi
tomb = [1, 2, 3];
List<int> lista = new List<int>(); // ez egy int típusú lista de lehet bármi
lista.Add(1); // listához így tudsz új elemet adni
// side note, a lista egy dinamikus tömbb, érettségin azt használd
//kapuk
if (eldontendo)
{
//ha az állítás igaz ez történik.. pl
egesz++;
}
else if (egesz == 1)
{
//ha az előző nem teljesül megnézzük ezt. Ha ez teljesül akkor pl
lista.Add(5);
}
else
{
//bármilyen más esetben ez teljesül pl
Console.WriteLine("Send nudes"); //képernyőre kiírás
string user = Console.ReadLine(); // képernyőről beolvasás. Ez mindog string lesz szóval sztringbe tudod elmenteni
}
switch (lol) // a megadott változót vizsgáljuk
{
case (2): //ha ez az érték kettő akkor pl
int elem = tomb[1]; // a tömb második elemét kimentjük egy azonos típusú változóba
break;
case (3):
Random rnd = new Random(); // random szám generátor létrehozása
int randomnumber = rnd.Next(10); //új random szám generálása az end generátoron keresztül
break;
}
//loopok
for (int i = 0; i < 3; i++) //az i létrehozott intet egyesével növeljük amíg el nem éri a hármat
{
Console.WriteLine(tomb[i]);
// ez azt jelenti hogy az i először nulla lesz, ez kissebb mint három így belép a kódblokkba és végrehajtja azt. tehát kiírja a tömb i-edik azaz először
//nulladik elemét. Majd hozzáad az ihez egyet. Így az i = 1. Még ez is kissebb mint 3 ezért ismét belép. És így tovább.
}
foreach (int i in lista) // ezt csak tömbök vagy listák bejárására használjuk
{
//fontos hogy a meghatározott elem típúsa azonos egyen a lista vagy tömb típúsával. A foreach egyesével minden elemmet egyenlővé tesz az i vel
// és be fog lépni a kódblokkba
if (i == 2) //tehát itt az i először egyenlő a listánk első elemével.
{
eldontendo = false;
}
}
while (eldontendo) //ez azt jelenti hogy amíg a zárójelben lévő kijelentés teljesül
{
//addig belép az alábbi kódblokkba
// figyelj hogy csak olyan dolgot írj a zárójelbe ami változik mert különben örökké a ciklusba maradunk muhaha
int[] xd = new int[5]; //létrehozunk egy 5 elem hosszú tömböt
int hovarakjuk = Convert.ToInt16(Console.ReadLine()); //a Convert beépített metódust tudod használni a típúsok megváltoztatására
// a zárójelben lévő elemet itt inté alakítjuk. De ez lehet .ToString vagy ToBool vagy bármi egyéb logikus lépés
if (hovarakjuk < xd.Length) // a .Lenghtet tömbök hosszának meghatározására tudod használni
{
xd[hovarakjuk] = 1; // itt az xd tömbünk "hovarakjuk"adik elemét egyenlővé tesszük 1el
}
}
}
}

View File

@@ -1,4 +1,5 @@
using System;
using System.ComponentModel;
using System.Linq;
using System.Runtime.InteropServices;
@@ -59,13 +60,13 @@ namespace OE.ALGA.Optimalizalas
{
int m;
Func<int, T> generator;
Func<T, int> josag;
Func<T, double> josag;
int lepesszam;
public int Lepesszam
public int LepesSzam
{
get { return lepesszam; }
}
public NyersEro(int m, Func<int, T> generator, Func<T, int> josag)
public NyersEro(int m, Func<int, T> generator, Func<T, double> josag)
{
this.m = m;
this.generator = generator;
@@ -73,26 +74,70 @@ namespace OE.ALGA.Optimalizalas
}
public T OptimalisMegoldas()
{
T[] megoldasok = new T[m];
T legjobb = generator(0);
for (int i = 0; i < m; i++)
{
megoldasok[i] = generator(i);
}
int[] ertekek = new int[m];
int maxindex = 0;
for (int i = 0; i < m; i++)
{
ertekek[i] = josag(megoldasok[i]);
if (ertekek[maxindex] < ertekek[i])
T tmp = generator(i);
if (josag(tmp) > josag(legjobb))
{
maxindex = i;
legjobb = tmp;
}
lepesszam++;
}
return megoldasok[maxindex];
return legjobb;
}
}
public class NyersEroHatizsakPakolas
{
}
int lepesszam;
public int LepesSzam
{
get { return lepesszam; }
}
HatizsakProblema problema;
public NyersEroHatizsakPakolas(HatizsakProblema problema)
{
this.problema = problema;
}
public bool[] Generator(int i)
{
int szam = i;
bool[] pakolas = new bool[problema.N];
for (int j = problema.N; j >= 0; j--)
{
bool ertek = (szam % 2 != 0);
pakolas[i] = ertek;
if (ertek && szam > 0)
{
szam--;
}
szam = szam / 2;
}
return pakolas;
}
public double Josag(bool[] pakolas)
{
double ertek = 0;
if (problema.Ervenyes(pakolas))
{
ertek = -1;
}
else
{
ertek = problema.OsszErtek(pakolas);
}
return ertek;
}
public bool[] OptimalisMegoldas()
{
NyersEro<bool[]> nyersero = new NyersEro<bool[]>(Convert.ToInt32(Math.Pow(2, Convert.ToDouble(problema.N))), Generator, Josag);
bool[] megoldas = nyersero.OptimalisMegoldas();
lepesszam = nyersero.LepesSzam;
return megoldas;
}
public double OptimalisErtek()
{
return problema.OsszErtek(OptimalisMegoldas());
}
}
}

View File

@@ -1,162 +1,162 @@
//using NUnit.Framework;
//using System;
//using OE.ALGA.Optimalizalas;
// using NUnit.Framework;
// using System;
// using OE.ALGA.Optimalizalas;
//namespace OE.ALGA.Tesztek.Optimalizalas
//{
// [TestFixture(Category = "Optimalizalas", TestName = "07 - Hátiszák Tesztek")]
// public class HatizsakTesztek
// {
// [TestCase]
// public void UresTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(0, 0, [], []);
// Assert.Multiple(() =>
// {
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.uresPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.teljesPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.feligPakolas), Is.EqualTo(0));
// });
// Assert.Multiple(() =>
// {
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.uresPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.teljesPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.feligPakolas), Is.EqualTo(0));
// });
// Assert.Multiple(() =>
// {
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.uresPakolas), Is.True);
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.teljesPakolas), Is.True);
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.feligPakolas), Is.True);
// });
// }
// [TestCase]
// public void SulyTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// Assert.Multiple(() =>
// {
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.uresPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.teljesPakolas), Is.EqualTo(10));
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.feligPakolas), Is.EqualTo(2));
// });
// }
// [TestCase]
// public void JosagTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// Assert.Multiple(() =>
// {
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.uresPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.teljesPakolas), Is.EqualTo(29));
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.feligPakolas), Is.EqualTo(11));
// });
// }
// [TestCase]
// public void ErvenyesTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// Assert.Multiple(() =>
// {
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.uresPakolas), Is.True);
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.teljesPakolas), Is.False);
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.feligPakolas), Is.True);
// });
// }
// }
// namespace OE.ALGA.Tesztek.Optimalizalas
// {
// [TestFixture(Category = "Optimalizalas", TestName = "07 - Hátiszák Tesztek")]
// public class HatizsakTesztek
// {
// [TestCase]
// public void UresTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(0, 0, [], []);
// Assert.Multiple(() =>
// {
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.uresPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.teljesPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.feligPakolas), Is.EqualTo(0));
// });
// Assert.Multiple(() =>
// {
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.uresPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.teljesPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.feligPakolas), Is.EqualTo(0));
// });
// Assert.Multiple(() =>
// {
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.uresPakolas), Is.True);
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.teljesPakolas), Is.True);
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.feligPakolas), Is.True);
// });
// }
// [TestCase]
// public void SulyTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// Assert.Multiple(() =>
// {
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.uresPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.teljesPakolas), Is.EqualTo(10));
// Assert.That(problema.OsszSuly(PakolasTesztEsetek.feligPakolas), Is.EqualTo(2));
// });
// }
// [TestCase]
// public void JosagTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// Assert.Multiple(() =>
// {
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.uresPakolas), Is.EqualTo(0));
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.teljesPakolas), Is.EqualTo(29));
// Assert.That(problema.OsszErtek(PakolasTesztEsetek.feligPakolas), Is.EqualTo(11));
// });
// }
// [TestCase]
// public void ErvenyesTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// Assert.Multiple(() =>
// {
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.uresPakolas), Is.True);
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.teljesPakolas), Is.False);
// Assert.That(problema.Ervenyes(PakolasTesztEsetek.feligPakolas), Is.True);
// });
// }
// }
// [TestFixture(Category = "Optimalizalas", TestName = "07 - Nyers Ero Tesztek")]
// public class NyersEroTesztek
// {
// [TestCase]
// public void UresTeszt()
// {
// int[] A = { 4, 6, 7, 4, 2, 1 };
// NyersEro<int> opt = new NyersEro<int>(
// 0,
// x => { Guardian.Recursion.CheckStackTrace(); return A[x - 1]; },
// x => { Guardian.Recursion.CheckStackTrace(); return x; });
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisMegoldas(), Is.EqualTo(4));
// Assert.That(opt.LepesSzam, Is.EqualTo(0));
// });
// }
// [TestCase]
// public void TombLegnagyobbEleme()
// {
// int[] A = { 4, 6, 7, 4, 2, 1 };
// NyersEro<int> opt = new NyersEro<int>(
// A.Length,
// x => { Guardian.Recursion.CheckStackTrace(); return A[x - 1]; },
// x => { Guardian.Recursion.CheckStackTrace(); return x; });
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisMegoldas(), Is.EqualTo(7));
// Assert.That(opt.LepesSzam, Is.EqualTo(5));
// });
// }
// [TestFixture(Category = "Optimalizalas", TestName = "07 - Nyers Ero Tesztek")]
// public class NyersEroTesztek
// {
// [TestCase]
// public void UresTeszt()
// {
// int[] A = { 4, 6, 7, 4, 2, 1 };
// NyersEro<int> opt = new NyersEro<int>(
// 0,
// x => { Guardian.Recursion.CheckStackTrace(); return A[x - 1]; },
// x => { Guardian.Recursion.CheckStackTrace(); return x; });
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisMegoldas(), Is.EqualTo(4));
// Assert.That(opt.LepesSzam, Is.EqualTo(0));
// });
// }
// [TestCase]
// public void TombLegnagyobbEleme()
// {
// int[] A = { 4, 6, 7, 4, 2, 1 };
// NyersEro<int> opt = new NyersEro<int>(
// A.Length,
// x => { Guardian.Recursion.CheckStackTrace(); return A[x - 1]; },
// x => { Guardian.Recursion.CheckStackTrace(); return x; });
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisMegoldas(), Is.EqualTo(7));
// Assert.That(opt.LepesSzam, Is.EqualTo(5));
// });
// }
// }
// }
// [TestFixture(Category = "Optimalizalas", TestName = "07 - Nyers Ero Hátizsák Pakolás Tesztek")]
// public class NyersEroHatizsakPakolasTesztek
// {
// [TestCase]
// public void UresTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(0, 0, [], []);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisErtek(), Is.EqualTo(0));
// Assert.That(opt.OptimalisMegoldas(), Is.EquivalentTo(Array.Empty<bool>()));
// Assert.That(opt.LepesSzam, Is.EqualTo(0));
// });
// }
// [TestCase]
// public void JegyzetbenLevoPeldaErtekTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisErtek(), Is.EqualTo(PakolasTesztEsetek.jegyzet_optimalis_ertek));
// Assert.That(opt.LepesSzam, Is.EqualTo(63));
// });
// }
// [TestCase]
// public void JegyzetbenLevoPeldaMegoldasTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisMegoldas(), Is.EquivalentTo(PakolasTesztEsetek.jegyzet_optimalis_pakolas));
// Assert.That(opt.LepesSzam, Is.EqualTo(63));
// });
// }
// [TestCase]
// public void NagyPeldaMegoldasErtekTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.nagy_n, PakolasTesztEsetek.nagy_Wmax, PakolasTesztEsetek.nagy_w, PakolasTesztEsetek.nagy_p);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisErtek(), Is.EqualTo(PakolasTesztEsetek.nagy_optimalis_ertek));
// Assert.That(opt.LepesSzam, Is.EqualTo(131071));
// });
// }
// [TestCase]
// public void NagyPeldaMegoldasTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.nagy_n, PakolasTesztEsetek.nagy_Wmax, PakolasTesztEsetek.nagy_w, PakolasTesztEsetek.nagy_p);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisMegoldas(), Is.EquivalentTo(PakolasTesztEsetek.nagy_optimalis_pakolas));
// Assert.That(opt.LepesSzam, Is.EqualTo(131071));
// });
// }
// }
//}
// [TestFixture(Category = "Optimalizalas", TestName = "07 - Nyers Ero Hátizsák Pakolás Tesztek")]
// public class NyersEroHatizsakPakolasTesztek
// {
// [TestCase]
// public void UresTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(0, 0, [], []);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisErtek(), Is.EqualTo(0));
// Assert.That(opt.OptimalisMegoldas(), Is.EquivalentTo(Array.Empty<bool>()));
// Assert.That(opt.LepesSzam, Is.EqualTo(0));
// });
// }
// [TestCase]
// public void JegyzetbenLevoPeldaErtekTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisErtek(), Is.EqualTo(PakolasTesztEsetek.jegyzet_optimalis_ertek));
// Assert.That(opt.LepesSzam, Is.EqualTo(63));
// });
// }
// [TestCase]
// public void JegyzetbenLevoPeldaMegoldasTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.jegyzet_n, PakolasTesztEsetek.jegyzet_Wmax, PakolasTesztEsetek.jegyzet_w, PakolasTesztEsetek.jegyzet_p);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisMegoldas(), Is.EquivalentTo(PakolasTesztEsetek.jegyzet_optimalis_pakolas));
// Assert.That(opt.LepesSzam, Is.EqualTo(63));
// });
// }
// [TestCase]
// public void NagyPeldaMegoldasErtekTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.nagy_n, PakolasTesztEsetek.nagy_Wmax, PakolasTesztEsetek.nagy_w, PakolasTesztEsetek.nagy_p);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisErtek(), Is.EqualTo(PakolasTesztEsetek.nagy_optimalis_ertek));
// Assert.That(opt.LepesSzam, Is.EqualTo(131071));
// });
// }
// [TestCase]
// public void NagyPeldaMegoldasTeszt()
// {
// HatizsakProblema problema = new HatizsakProblema(PakolasTesztEsetek.nagy_n, PakolasTesztEsetek.nagy_Wmax, PakolasTesztEsetek.nagy_w, PakolasTesztEsetek.nagy_p);
// NyersEroHatizsakPakolas opt = new NyersEroHatizsakPakolas(problema);
// Assert.Multiple(() =>
// {
// Assert.That(opt.OptimalisMegoldas(), Is.EquivalentTo(PakolasTesztEsetek.nagy_optimalis_pakolas));
// Assert.That(opt.LepesSzam, Is.EqualTo(131071));
// });
// }
// }
// }