Wie Zahlen exponentiell in Konsole ausgeben?

HansEder

Mitglied
Hallo, ich versuch es mal auf diesem Wege, eine rettende Lösung zu finden.

Kurz vorab muss man dazu sagen, dass ich mich eher Laienhaft in der Programmierwelt (Java/PHP/HTML/CSS) bewege, aber alles in einem Darstellerischen absurden Bereich.
Kurz gesagt: Ich nutze diese Sprachen um absurde Dinge nach meinem Geschmack zu manipulieren.

So und nun kommt das Problem, an dem ich seit paar Tagen hänge.

Ziel ist es, eine Kurve die expotentiell verläuft, mit einfachen Mitteln wie Zahlenanreihungen nachzubilden. Diese Zahlenkurve soll aber bei jedem starten von neuem generiert werden können.
Also keine Strings aneinander reihen 😉

vereinfacht ungefähr so(nur ist mein Ziel mit mehreren zwischenschritten):

1293748172643871236487621834768127346891276439871623847612348761238476128374618273461
21123111111111199999999999999999999912318230923094239874123
12938471234687219834719283479128347192
123849182374918234981
123498123498
1234878
128
23
2
1
0


Primitive Datentypen (double,long,int) sind zu schnell erschöpft.
Ich weiß nicht, wie ich solche Massen an Zahlen errechnen soll, damit diese untereinandergereiht, diese Form ergeben.

In dieser Richtung habe ich mehrere verschiedene Ansätze ausprobiert.
(mit BigInteger habe ich nur linear ansteigende "kurven" darstellen können, eine expotentiell steigende leider nicht)


Kann mir jemand helfen?
mit freundlichen Grüßen
 
Wenn die ("String"-) Länge der Zahl exponentiell ansteigen soll, muss die Zahl "mehr als" exponentiell steigen, also vielleicht sowas wie
f6b45518871779e0a2ff13d62adbac0b.png
(von Potenzturm ? Wikipedia )
 
okay, ich habs mal versuch zu implementieren.
Nur ein kurzer Zwischentest, ob ich das mit den Potenztürmen auch so verstanden hab.

Java:
		int i=1;
        double a=2;
		double b=2;

		while (i<=10){
			
			b = Math.pow(b, a);

			System.out.println(b);

			try {
				Thread.sleep(0500);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			i++;
		}[B][/B]

Als Ausgabe bekomme ich:

Java:
4.0
16.0
256.0
65536.0
4.294967296E9
1.8446744073709552E19
3.4028236692093846E38
1.157920892373162E77
1.3407807929942597E154
Infinity

Wie man schön sehen kann, ist der Datentyp der Flaschenhals.

Aber wie mache ich das dann bei Strings? Mit denen habe ich jetzt wirklich selten was gemacht 😳
 
Java:
        int i=1;
        int a = 2;
        BigInteger b = BigInteger.valueOf(2);

        while (i<=10){
            b = b.pow(a);
            System.out.println(b);

            try {
                Thread.sleep(0500);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            i++;
        }

4
16
256
65536
4294967296
18446744073709551616
340282366920938463463374607431768211456
115792089237316195423570985008687907853269984665640564039457584007913129639936
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216
 
Zuletzt bearbeitet von einem Moderator:
Java:
	public static void main(String[] args) {
		int i=1;
		double a=2;
		double b=2;
		while (i<=10){
			b = Math.pow(b, a);
			System.out.println(String.format("%.0f", b));
			try {
				Thread.sleep(0500);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			i++;
		}
	}
 

4
16
256
65536
4294967296
18446744073709552000
340282366920938460000000000000000000000
115792089237316200000000000000000000000000000000000000000000000000000000000000
13407807929942597000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Infinity


naja^^
 
Must du halt mit dem Wert für a spielen (z.B. a = 1,25) oder wie meinst du das?

edit:// seh grade, pow gibt es nur für int... gut dann nicht. 😉
 

Neue Themen


Zurück
Oben