Zu blöd für Mathe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Also so wie ich das verstehe kann es nicht gemeint sein das wäre zu einfach

    wenn du 1 hast soll 0 rauskommen und wenn du 55 hast soll 25 rauskommen?

    Dann brauchst doch nur im Dreisatz umrechnen

    y = x * 25 / 55

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Stackoverflow brachte die Antwort....

    Quellcode

    1. let points: [(Double, Double)] = [(1, 0), (55, 0.25), (121, 0.75), (300, 1.0)]
    2. let mappings = zip(points, points.dropFirst()).map { left, right in
    3. return (left.0...right.0, left.1...right.1)
    4. }
    5. func weight(_ x: Double) -> Double {
    6. guard let (source, destination) = (mappings.first { $0.0.contains(x) }) else { return 1.0 }
    7. let a = source.lowerBound
    8. let b = source.upperBound
    9. let c = destination.lowerBound
    10. let d = destination.upperBound
    11. return (x-a)*(d-c)/(b-a)+c
    12. }
    Alles anzeigen