Rechenweg gesucht

13/02/2016 - 04:13 von Maik Koenig | Report spam
Servus!

Gegeben ist:

c = a/b;

Gesucht wird jetzt ein Weg, um folgendes zu lösen:

c-1 = (a+x)/(b+y);

Dabei gilt, das x mindestens 1 sein muss und y mindestens so groß wie x.

Als Beispiel:

c = 4 = 20/5
c-1 = 3 = 21/7

Damit wàre x = 1 und y = 2

Ich stehe echt auf dem Schlauch: Wie bekomme ich das in JavaScript
ausgedrückt damit es mir x und y liefern kann wenn a, b und c bekannt sind?

a, b, x und y müssen übrigens ganze Zahlen sein, gerundet werden darf
nicht, bei c reicht das gerundete Endergebnis, es ist aber als
Komma-Wert bekannt. So könnte das Beispiel auch lauten:

3.8 = 19/5
3,'33 = 20/6

Dann wàren x und y jeweils 1.

Hat jemand eine Idee?

Greetz,
MK
Kopp-Verlag-Glàubige, Religionsdeppen, rechte Vollidioten
und àhnlicher Bio-Abfall werden ohne Hinweis ignoriert!
 

Lesen sie die antworten

#1 Thomas Mlynarczyk
13/02/2016 - 11:18 | Warnen spam
On 13/02/16 04:13, Maik Koenig wrote:
c = a/b;
c-1 = (a+x)/(b+y);
Dabei gilt, das x mindestens 1 sein muss und y mindestens so groß wie x.
a, b, x und y müssen übrigens ganze Zahlen sein
Hat jemand eine Idee?



Auflösen der Gleichung nach y ergibt:

y = b(x+b)/(a-b)

Daher als Ideenansatz (völlig ungetestet; Kaffee wirkt noch nicht richtig):

x = 1;
while ( b * ( x + b ) % ( a - b ) ) ++x;
y = b * ( x + b ) / ( a - b );

Damit ist allerdings das Kriterium y >= x noch nicht abgedeckt [1]. Und
wieviele Durchlàufe die Schleife maximal braucht, müßte man sich auch
noch überlegen. Wie gesagt, nur ein Ideenansatz und noch weit entfernt
von einer akzeptablen Lösung.

Es wàre allerdings u.U. hilfreich, ein wenig Kontextinformation zu
haben: Was sind a, b, x, und y? Was willst Du hier berechnen? Evtl.
ergibt sich in Kenntnis dieser Details ein völlig anderer Lösungsansatz.

Gruß,
Thomas

[1] Man könnte natürlich y gleich in der Schleife mit berechnen und y >=
x in die Schleifenbedingung integrieren.

Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!
(Coluche)

Ähnliche fragen