[GastForen Programmierung/Entwicklung JavaScript Berechnung von Punkten mit Logarithmusfunktion

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Berechnung von Punkten mit Logarithmusfunktion

peter_schaer
Beiträge gesamt: 4

17. Jan 2022, 09:44
Beitrag # 1 von 7
Bewertung:
(5143 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
In einer Applikation für einen Kunden muss ich eine Logarithmus-Funktion einbauen.
In der Applikation berechnen wir die Durchlaufzeit für die Fertigung eines Bauteils. Da sich aber die Zeiten bei mehreren Teilen pro Teil reduziert, muss das berücksichtigt werden.

Die Vorgabe vom Kunden ist:

1 Teil = 100min / Teil
2 Teile = 65min / Teil (Zeit 1 Teil - 35%)
4 Teile = 42.25 min / Teil (Zeit 2 Teile - 35%)
8 Teile = 27.46 min / Teil (Zeit 4 Teile - 35%)

Nun sollte ich die Werte auch für 3, 5, 6, 7, 9, 10, 11 ... Teile haben.

Wie kann ich das mit einer Funktion mittels javascript rechnen?

Ich gehe davon aus, dass ich das mit Math.log() machen muss. Habe aber die richtige Lösung noch nicht gefunden.

Wäre sehr dankbar für Hilfe. Ich komme nicht weiter nach sicher 10 Stunden googeln und scripts schreiben/testen.
X

Berechnung von Punkten mit Logarithmusfunktion

Thomas Richard
  
Beiträge gesamt: 19324

17. Jan 2022, 16:48
Beitrag # 2 von 7
Beitrag ID: #582217
Bewertung:
(5067 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
evtl., weil ungetestet:

Code
var Staffelzeit = 100 * Math.pow(0.65, (Math.log(n) / Math.log(2)) 

mit n = Bauteileanzahl


als Antwort auf: [#582208]
(Dieser Beitrag wurde von Thomas Richard am 17. Jan 2022, 16:52 geändert)

Berechnung von Punkten mit Logarithmusfunktion

peter_schaer
Beiträge gesamt: 4

17. Jan 2022, 17:22
Beitrag # 3 von 7
Beitrag ID: #582218
Bewertung:
(5035 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: evtl., weil ungetestet:

Code
var Staffelzeit = 100 * Math.pow(0.65, (Math.log(n) / Math.log(2)) 

mit n = Bauteileanzahl



Vielen Dank für die Lösung!!


als Antwort auf: [#582217]

Berechnung von Punkten mit Logarithmusfunktion

Thomas Richard
  
Beiträge gesamt: 19324

17. Jan 2022, 18:00
Beitrag # 4 von 7
Beitrag ID: #582219
Bewertung:
(5017 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hast du es denn getestet?

Oder schreibst du nur „Danke“, weil es sich so gehört?


als Antwort auf: [#582218]

Berechnung von Punkten mit Logarithmusfunktion

peter_schaer
Beiträge gesamt: 4

17. Jan 2022, 19:13
Beitrag # 5 von 7
Beitrag ID: #582220
Bewertung:
(4984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas

Stimmt, hätte ein bisschen ausführlicher schreiben können.
Ich habe es getestet und mit den Vorgaben von meinem Kunden verglichen. Es funktioniert zu 100%
Ein bisschen schade ist, dass ich die Lösung nicht verstehe. Ich bin eigentlich in Mathe nicht besonders schlecht, dennoch habe ich es nach ca. 10 Stunden googlen und Beispiele machen nicht verstanden.

Ich bin aber sehr froh, dass ich nun eine Lösung habe, die passt.

Nochmals vielen Dank!

Liebe Grüsse aus dem Thurgau

Pesche


als Antwort auf: [#582219]

Berechnung von Punkten mit Logarithmusfunktion

Thomas Richard
  
Beiträge gesamt: 19324

17. Jan 2022, 21:54
Beitrag # 6 von 7
Beitrag ID: #582223
Bewertung:
(4925 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Es funktioniert zu 100%


Das freut mich!


Antwort auf: Ein bisschen schade ist, dass ich die Lösung nicht verstehe. Ich bin eigentlich in Mathe nicht besonders schlecht, dennoch habe ich es nach ca. 10 Stunden googlen und Beispiele machen nicht verstanden.


Ich hab erstmal auf nem Zettel abstrahiert, was du da vorgegeben hast:

1 Teil = 100
2 Teile = 2 * ( 100 * ( 1 - 0,35 ) ) / 2

Die zweien vorne und hinten kürzen sich weg, aus dem 1-0,35 wird 0,65.

4 Teile probiert … zweimal um 35% reduziert bedeutet, ich hab jetzt ein 0,65*0,65 drin:

4 Teile = 100 * 0,65 * 0,65 = 100 * 0,65²

dabei bemerkt das bei einem Teil auch 0,65 drin steckt, und zwar hoch 0:
0,65^0 = 1
0,65^1 = 0,65 --> die Variante in der 2 Teile-Formel


8 Teile = 100 * 0,65³

Und da erkannt, stimmt, ich brauche den Logarithmus um an die 3 im Exponenten zu kommen: Denn 2hoch3 = 8 und somit ist der Logarithmus von 8 zur Basis 2 = 3

Kurz bei Mozilla in der Javascript Doku gesucht:

https://developer.mozilla.org/...bal_Objects/Math/log

… Math.log ist mein Freund, und für die nicht eulersche Basis 2 wird einfach der Log e durch Log 2 geteilt:

Math.log (n) / Math.log (2)

Dann noch geschaut wie Javscript potenziert: Math.pow (x,y) = x^y

und das ganze von oben zusammengebaut:

Staffelzeit = 100 * 0,65^(log(n)/log(2))

in JavaScript:

Staffelzeit = 100 * Math.pow(0.65, (Math.log(n) / Math.log(2))


Hilfts?


als Antwort auf: [#582220]
(Dieser Beitrag wurde von Thomas Richard am 17. Jan 2022, 22:07 geändert)

Berechnung von Punkten mit Logarithmusfunktion

peter_schaer
Beiträge gesamt: 4

18. Jan 2022, 07:33
Beitrag # 7 von 7
Beitrag ID: #582226
Bewertung:
(4851 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Thomas für die Erklärung. Wenn ich wieder so ein Problem habe, komme ich gleich auf dich zu :-)

Liebe Grüsse Pesche


als Antwort auf: [#582223]
X