mirror of
https://github.com/Lendaia/oe-alga-feladatok.git
synced 2026-04-23 12:26:07 +01:00
mostmegisjoabilenytuzet
This commit is contained in:
@@ -10,8 +10,8 @@ namespace OE.ALGA.Optimalizalas
|
||||
public int N { get; }
|
||||
public int Wmax { get; }
|
||||
public int[] W { get; }
|
||||
public double[] P { get; }
|
||||
public HatizsakProblema(int n, int wmax, int[] w, double[] p)
|
||||
public float[] P { get; }
|
||||
public HatizsakProblema(int n, int wmax, int[] w, float[] p)
|
||||
{
|
||||
N = n;
|
||||
Wmax = wmax;
|
||||
@@ -24,21 +24,18 @@ namespace OE.ALGA.Optimalizalas
|
||||
public int OsszSuly(bool[] pakolas)
|
||||
{
|
||||
int osszsuly = 0;
|
||||
if (pakolas.Length == N)
|
||||
for (int i = 0; i < N; i++)
|
||||
{
|
||||
for (int i = 0; i < N; i++)
|
||||
if (pakolas[i])
|
||||
{
|
||||
if (pakolas[i])
|
||||
{
|
||||
osszsuly += W[i];
|
||||
}
|
||||
osszsuly += W[i];
|
||||
}
|
||||
}
|
||||
return osszsuly;
|
||||
}
|
||||
public double OsszErtek(bool[] pakolas)
|
||||
public float OsszErtek(bool[] pakolas)
|
||||
{
|
||||
double osszertek = 0;
|
||||
float osszertek = 0;
|
||||
if (pakolas.Length == N)
|
||||
{
|
||||
for (int i = 0; i < N; i++)
|
||||
@@ -60,13 +57,13 @@ namespace OE.ALGA.Optimalizalas
|
||||
{
|
||||
int m;
|
||||
Func<int, T> generator;
|
||||
Func<T, double> josag;
|
||||
Func<T, float> josag;
|
||||
int lepesszam;
|
||||
public int LepesSzam
|
||||
{
|
||||
get { return lepesszam; }
|
||||
}
|
||||
public NyersEro(int m, Func<int, T> generator, Func<T, double> josag)
|
||||
public NyersEro(int m, Func<int, T> generator, Func<T, float> josag)
|
||||
{
|
||||
this.m = m;
|
||||
this.generator = generator;
|
||||
@@ -75,10 +72,10 @@ namespace OE.ALGA.Optimalizalas
|
||||
public T OptimalisMegoldas()
|
||||
{
|
||||
T legjobb = generator(0);
|
||||
for (int i = 0; i < m; i++)
|
||||
for (int i = 1; i < m; i++)
|
||||
{
|
||||
T tmp = generator(i);
|
||||
if (josag(tmp) > josag(legjobb))
|
||||
if (josag(tmp) >= josag(legjobb))
|
||||
{
|
||||
legjobb = tmp;
|
||||
}
|
||||
@@ -103,10 +100,10 @@ namespace OE.ALGA.Optimalizalas
|
||||
{
|
||||
int szam = i;
|
||||
bool[] pakolas = new bool[problema.N];
|
||||
for (int j = problema.N; j >= 0; j--)
|
||||
for (int j = problema.N - 1; j >= 0; j--)
|
||||
{
|
||||
bool ertek = (szam % 2 != 0);
|
||||
pakolas[i] = ertek;
|
||||
pakolas[j] = ertek;
|
||||
if (ertek && szam > 0)
|
||||
{
|
||||
szam--;
|
||||
@@ -115,10 +112,10 @@ namespace OE.ALGA.Optimalizalas
|
||||
}
|
||||
return pakolas;
|
||||
}
|
||||
public double Josag(bool[] pakolas)
|
||||
public float Josag(bool[] pakolas)
|
||||
{
|
||||
double ertek = 0;
|
||||
if (problema.Ervenyes(pakolas))
|
||||
float ertek = 0;
|
||||
if (!problema.Ervenyes(pakolas))
|
||||
{
|
||||
ertek = -1;
|
||||
}
|
||||
@@ -135,7 +132,7 @@ namespace OE.ALGA.Optimalizalas
|
||||
lepesszam = nyersero.LepesSzam;
|
||||
return megoldas;
|
||||
}
|
||||
public double OptimalisErtek()
|
||||
public float OptimalisErtek()
|
||||
{
|
||||
return problema.OsszErtek(OptimalisMegoldas());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user