CyborgBeta
Banned
- Registriert
- Jan. 2021
- Beiträge
- 3.958
Welcher Beitrag denn genau?machhommy schrieb:Das wurde hier nun zu genüge aufgeführt was das Ziel ist![]()
Du musst auch nicht genau sagen, was das Problem ist, aber dann lass mich in Ruhe.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Welcher Beitrag denn genau?machhommy schrieb:Das wurde hier nun zu genüge aufgeführt was das Ziel ist![]()
Sie funktioniert vor allem, weil du durch Zufall passende Punkte gefunden hast.machhommy schrieb:Folgende Formel funktioniert z.B. ziemlich gut aber ist eben mMn nicht so leicht zu pflegen.
Sorry, aber die im Eingangsposting gezeigte Progress-Bar ist jedenfalls unlogisch, weil sie Werte kleiner 0 und größer 100 annehmen kann.CyborgBeta schrieb:Welcher Beitrag denn genau?
Du musst auch nicht genau sagen, was das Problem ist, aber dann lass mich in Ruhe.
CyborgBeta schrieb:Welcher Beitrag denn genau?
Du musst auch nicht genau sagen, was das Problem ist, aber dann lass mich in Ruhe.
CyborgBeta schrieb:Sorry, aber die im Eingangsposting gezeigte Progress-Bar ist jedenfalls unlogisch, weil sie Werte kleiner 0 und größer 100 annehmen kann.
Kann man mit einem höherem Grad und mehr Punkten fixenNilson schrieb:Mit anderen Punkten funktioniert das mit dem Polynom nicht mehr so gut:
let milestones = [10, 30, 20];
function getPercent(milestoneIndex, milestoneValue) {
let sum = 0;
for (let i = 0; i < milestoneIndex; i++) {
sum += milestones[i];
}
sum += milestoneValue;
let sum2 = milestones.reduce((a, b) => a + b, 0);
return sum / sum2 * 100.0;
}
for (let i = 0; i <= 10; i++) {
console.log(i + " of 1/3 is " + getPercent(0, i));
}
for (let i = 0; i <= 30; i++) {
console.log(i + " of 2/3 is " + getPercent(1, i));
}
for (let i = 0; i <= 20; i++) {
console.log(i + " of 3/3 is " + getPercent(2, i));
}
CyborgBeta schrieb:@machhommy Du musst nicht beleidigend werden.
KitKat::new() schrieb:Kann man mit einem höherem Grad und mehr Punkten fixen![]()
machhommy schrieb:Ich bin mir auch ziemlicher sich das man die Formeln weiter anpassen kann
Meiner Ansicht nach passt es schon, ich wüsste nicht, wie es sonst anders gehen sollte. Aber zu 100% sicher bin ich mir nicht. @machhommy kann das ja einfach einmal testen.tollertyp schrieb:Irgendwie passt deine finale Lösung dennoch nicht zur Ausgangsaufgabenstellung
machhommy schrieb:Gegeben ist immer der Punktewert (z.B. p = 45).
let milestones = [10, 30, 20];
function getPercentFromMilestone(milestoneIndex, milestoneValue) {
let sum = 0;
for (let i = 0; i < milestoneIndex; i++) {
sum += milestones[i];
}
sum += milestoneValue;
let sum2 = milestones.reduce((a, b) => a + b, 0);
return sum / sum2 * 100.0;
}
function getPercent(val) {
let sum = milestones.reduce((a, b) => a + b, 0);
return val / sum * 100.0;
}
function getMilestone(val) {
for (let i = 0; i < milestones.length; i++) {
val -= milestones[i];
if (val <= 0) {
return i;
}
}
return -1;
}
for (let i = 0; i <= 30; i++) {
console.log(i + " of MS 2 is " + getPercentFromMilestone(1, i) + " %");
}
for (let i = 0; i <= 60; i++) {
console.log(i + " of all MS is " + getPercent(i) + " %, that is MS " + (getMilestone(i) + 1));
}
let milestones = [20, 30, 10];
function getPercent(val) {
let sum = milestones.reduce((a, b) => a + b, 0);
return val / sum * 100.0;
}
for (let i = 0; i <= 60; i++) {
console.log(i, getPercent(i));
}
function getPercent(val) {
return (100/60) * val * 100.0;
}
var milestones = {};
milestones[0] = 0;
milestones[20] = 17;
milestones[50] = 50;
milestones[100] = 83;
function getPercent(p) {
var lowerBounds = 0;
var higherBounds = 0;
for (var key in milestones) {
if (p < higherBounds) {
break;
}
lowerBounds = higherBounds;
higherBounds = key;
}
var lowerPercentage = milestones[lowerBounds];
var higherPercentage = milestones[higherBounds];
var percent = lowerPercentage + (higherPercentage - lowerPercentage) * (p - lowerBounds) / (higherBounds - lowerBounds)
return percent;
}
for (let i = 0; i <= 100; i++) {
console.log(i, getPercent(i));
}
getPercent falsch.let milestones = [10, 30, 20];
let milestonesSum = milestones.reduce((a, b) => a + b, 0);
function getPercentFromValue(val) {
return val / milestonesSum * 100.0;
}
function getValueFromPercent(per) {
return per / 100.0 * milestonesSum;
}
function getMilestoneIndexFromPercent(per) {
let v = getValueFromPercent(per);
let i = 0;
while (i < milestones.length && v > milestones[i]) {
v -= milestones[i];
i++;
}
return i;
}
console.log("percent to value :");
for (let i = 0; i <= 100; i++) {
console.log(i, getValueFromPercent(i), getMilestoneIndexFromPercent(i));
}
console.log("value to percent :");
for (let i = 0; i <= milestonesSum; i++) {
console.log(i, getPercentFromValue(i), getMilestoneIndexFromPercent(getPercentFromValue(i)));
}
function getRange(milestoneIndex) {
let a = getPercentFromValue(milestones[milestoneIndex]);
let b = 0;
Array(milestoneIndex + 1).fill(0).map((_, i) => i).forEach(i => b += getPercentFromValue(milestones[i]));
return [Math.round(b - a), Math.round(b)];
}
console.log("Range :");
for (let i = 0; i < milestones.length; i++) {
console.log(i, getRange(i));
}
Array(milestoneIndex + 1)... ist nur eine "Kurz"schreibweise für:function getRange(milestoneIndex) {
let a = getPercentFromValue(milestones[milestoneIndex]);
let b = 0;
for (let i = 0; i <= milestoneIndex; i++) {
b += getPercentFromValue(milestones[i]);
}
return [Math.round(b - a), Math.round(b)];
}
Also falls du dich über die Zahlen wunderst, einfach mal den Eröffnungspost anschauen. Ich bin so freundlich und mache einen Screenshot:tollertyp schrieb:Wie erreiche ich mit dieser Funktion (also wie könnte ein milestones-Array aussehen dafür), dass der Eingangswert i=20 z.B. 17% liefert, i=50 dann 50% und i=100 schließlich 83%?
Das Problem ist doch schon gelöst, kein Grund, mir etwas zu unterstellen.tollertyp schrieb:So viel Text von mir, da muss die Frage untergegangen sein. Ich wiederhole sie gerne:
Also falls du dich über die Zahlen wunderst, einfach mal den Eröffnungspost anschauen. Ich bin so freundlich und mache einen Screenshot:
Anhang anzeigen 1226832
Und nochmals als Erinnerung: Nein, die Punkte sind eigentlich nicht sichtbar für den Nutzer.
Weil nur mal so am Rande: Das ist die Aufgabe. Falls du irgendeine persönliche Programmier-Challenge hast, kein Problem, tobe dich aus: Ich sehe nur keinen Zusammenhang zum Thread.
Du hast meinen Beitrag nicht verstanden, und auch nicht, dass die Formeln and und für sich identisch sind - zumindest nehme ich das an, sonst hättest du dir ja nicht die Mühe machen müssen, quasi dasselbe nochmals zu entwickeln.pfd schrieb:Die englischen bezeichnungen für Schranken.