Namens-Suche: diskreter Wert in unendlichem Zahlenbereich

15/05/2014 - 15:32 von Heiner Kücker | Report spam
Ich befasse mich gerade mit Unendlichkeit

Also gibt es ein Ober-Interface:

/**
* Ober-Interface für eventuell unendlich
* grosse/kleine Werte.
*
* @author Heiner Kücker
*/
public interface InfinityOrInteger
extends Comparable<InfinityOrInteger>
{
/**
* @return ob unendlich gross
*/
abstract public boolean isMaxInfinity();

/**
* @return ob unendlich klein
*/
abstract public boolean isMinInfinity();
}

Dazu zwei Singleton-Klassen für unendlich klein
und unendlich gross:

/**
* Singleton-Klasse für
* unendlich maximal (positiv).
*
* @author Heiner K&uuml;cker
*/
public final class MaxInfinity
implements InfinityOrInteger
{
/**
* Singleton-Instanz.
*/
public static final MaxInfinity instance = new MaxInfinity();

/**
* Singleton-Konstruktor.
*/
private MaxInfinity()
{
super();
}

/**
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(
final InfinityOrInteger o )
{
if ( o instanceof MaxInfinity )
{
return 0;
}
// dieses Objekt ist groesser als jeder konkrete Zahlenwert
return 1;
}

/**
* @see InfinityOrInteger#isMaxInfinity()
*/
@Override
public boolean isMaxInfinity()
{
return true;
}

/**
* @see InfinityOrInteger#isMinInfinity()
*/
@Override
public boolean isMinInfinity()
{
return false;
}

}


/**
* Singleton-Klasse für
* unendlich minimal (negativ).
*
* @author Heiner K&uuml;cker
*/
public final class MinInfinity
implements InfinityOrInteger
{
/**
* Singleton-Instanz.
*/
public static final MinInfinity instance = new MinInfinity();

/**
* Singleton-Konstruktor.
*/
private MinInfinity()
{
super();
}

/**
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(
final InfinityOrInteger o )
{
if ( o instanceof MinInfinity )
{
return 0;
}
// dieses Objekt ist kleiner als jeder konkrete Zahlenwert
return -1;
}

/**
* @see InfinityOrInteger#isMaxInfinity()
*/
@Override
public boolean isMaxInfinity()
{
return false;
}

/**
* @see InfinityOrInteger#isMinInfinity()
*/
@Override
public boolean isMinInfinity()
{
return true;
}

}

Selbstverstàndlich soll es auch konkret
fassbare Werte geben:

/**
* Ein ganzzahliger Wert,
* der weder {@link MaxInfinity}
* noch {@link MinInfinity} ist.
*
* @author Heiner K&uuml;cker
*/
public final class DiscretValue
implements InfinityOrInteger
{
/**
* ganzzahliger Wert
*/
public final BigInteger value;

/**
* Konstruktor.
* @param value
*/
public DiscretValue(
final BigInteger value )
{
if ( value == null )
{
throw new NullPointerException(
"value == null" );
}
this.value = value;
}

/**
* @see Comparable#compareTo
*/
@Override
public int compareTo(
final InfinityOrInteger o )
{
if ( o instanceof MaxInfinity )
{
// ein konkreter Wert is kleiner als maximal unendlich
return -1;
}
if ( o instanceof MinInfinity )
{
// ein konkreter Wert is groesser als minimal unendlich
return 1;
}
final DiscretValue discretValue = (DiscretValue) o;

final int result = this.value.compareTo( discretValue.value );

return result;
}

/**
* @see InfinityOrInteger#isMaxInfinity()
*/
@Override
public boolean isMaxInfinity()
{
return false;
}

/**
* @see InfinityOrInteger#isMinInfinity()
*/
@Override
public boolean isMinInfinity()
{
return false;
}

}

Ich habe die Klasse DiscretValue genannt,
bin mir aber nicht sicher, ob der Name
passt.

Prinzipiell sind alternativ auch
kontinuierliche Wert möglich,
also ContinuousValue.

Vielleicht müsste die Klasse besser
DiscretValueInInfintyRange heissen ?

Das wàre ziemlich lang.

Ratschlàge sind wilkommen.

Danke
Heiner
www.heinerkuecker.de
 

Lesen sie die antworten

#1 Robin Koch
15/05/2014 - 19:05 | Warnen spam
Am 15.05.2014 15:32, schrieb Heiner Kücker:

Ich habe die Klasse DiscretValue genannt,
bin mir aber nicht sicher, ob der Name
passt.

Prinzipiell sind alternativ auch
kontinuierliche Wert möglich,
also ContinuousValue.

Vielleicht müsste die Klasse besser
DiscretValueInInfintyRange heissen ?

Das wàre ziemlich lang.

Ratschlàge sind wilkommen.



FiniteValue
FiniteNumber
"Finity"

Robin Koch

Ähnliche fragen