Kalkulator Ligacji — Stosunek Mieszania i Ilości
Znajdź stosunek do zmieszania taniejszego i droższego składnika (lub niskiego i wysokiego stężenia), aby osiągnąć docelową wartość, plus dokładną ilość każdego. Bezpłatny kalkulator ligacji alternatywnej z przepracowanym diagramem krzyża.
Kalkulator Ligacji
Wpisz wartość taniejszego składnika, droższego (bardziej kosztownego) składnika i docelową wartość mieszaniny. Narzędzie zwraca stosunek, w którym je zmieszać — i dokładne ilości, jeśli podasz całkowitą ilość.
Wartości wejściowe
Wyniki
Stosunek mieszania
Ilości
Krzyż ligacji
Formuła ligacji
10.00 : 10.00 = (30.00 − 20.00) : (20.00 − 10.00)
Skład mieszaniny
Dokumentacja
Co robi ten kalkulator (ELI5)
Masz dwie rzeczy o różnej wartości — taną i drogą — i chcesz je zmieszać w mieszaninę o pewnej docelowej wartości pośrodku. Ligacja mówi ci ile każdej z nich użyć.
Pomyśl o huśtawce. Docelowa wartość to punkt podparcia. Składnik o wartości daleko od celu musi być mały w ilości, a ten bliski do celu musi być duży, aby dwa boki się równoważyły. Ligacja to po prostu arytmetyka tego balansu.
Wpisz trzy liczby — taniejszą wartość, droższą wartość i cel — a narzędzie daje ci:
- stosunek mieszania (np. 1:2, czyli 1 część taniej do 2 części drożej),
- dokładne ilości każdego składnika po wprowadzeniu całkowitej ilości,
- diagram krzyża i wykres składu, dzięki czemu możesz zobaczyć mieszaninę.
"Wartość" może być ceną, procentową siłą, stężeniem (%, mg/mL, w/v) — czymkolwiek mierzonym na jednej spójnej skali.
Formuła
Przy taniej wartości C, droższej wartości D i docelowej wartości mieszaniny M gdzie C < M < D:
Części każdego składnika pochodzą z przeciwnej różnicy — im dalej cel leży od składnika, tym więcej składnika innego potrzebujesz. Jeśli znasz również całkowitą ilość Q:
Krzyż ligacji
Klasycznym sposobem na rozmieszczenie tego jest "krzyż": umieść dwie wartości składników po lewej, cel pośrodku, i odejmuj wzdłuż każnej przekątnej. Każda różnica ląduje w przeciwnym rogu i staje się częściami tego składnika.
1 Dearer (D) ───────┐ ┌─────── (M − C) = dearer parts
2 ╲ ╱
3 Target (M)
4 ╱ ╲
5 Cheaper (C) ───────┘ └─────── (D − M) = cheaper parts
6Przykład przepracowany
Zmieszaj składnik za 30 do sprzedaży za $20:
Równe części. Na 100 jednostek łącznie to 50 taniej i 50 drożej — a zmieszana wartość to dokładnie 25, a stosunek staje się 5:15 = 1:3: im bliżej celu leży wartość droższego składnika, tym więcej składnika droższego potrzebujesz.
Ligacja alternatywna vs. ligacja medialna
- Ligacja alternatywna (co robi to narzędzie) — znasz dwie wartości składników i cel, i rozwiązujesz stosunek.
- Ligacja medialna — znasz ilości i wartości składników, i rozwiązujesz wynikową wartość mieszaniny. To jest po prostu średnia ważona: .
Oba są odwrotne do siebie, co jest wygodnym sposobem na sprawdzenie pracy: włóż ilości, które to narzędzie daje, z powrotem w średnią ważoną i powinieneś wylądować na swoim celu.
Gdzie się go używa
- Przygotowywanie leków — zmieszaj przygotowanie o wysokiej i niskiej sile (np. roztwór 70% i 20%) do przepisanego stężenia. Wartości to procenty lub mg/mL zamiast dolarów; arytmetyka jest identyczna.
- Biznes i ceny — zmieszaj tani i premium zapas do docelowego kosztu jednostkowego lub ceny sprzedaży.
- Chemia i napoje — rozcieńcz lub wzbogać do docelowego stężenia, mocy lub Brixa.
Ponieważ reguła wymaga tylko jednej wartości na spójnej skali, te same trzy wejścia pokrywają wszystkie z nich.
Jak go używać
- Wpisz taniejszą wartość, droższą wartość i docelową wartość mieszaniny (dowolna spójna jednostka).
- Opcjonalnie wpisz całkowitą ilość, aby uzyskać dokładną ilość każdego składnika.
- Przeczytaj stosunek, uproszczony stosunek i ilości; diagram krzyża i wykres pokazują podział.
Wejścia synchronizują się z adresem URL strony, więc możesz dodać do zakładek lub udostępnić dokładną konfigurację. Cel musi leżeć ściśle między dwiema wartościami składników — w przeciwnym razie żadna mieszanina ich nie może go osiągnąć, a narzędzie to wskazuje.
Oblicz to w kodzie
Każdy fragment przyjmuje taniejszą wartość c, droższą wartość d, cel m i całkowitą ilość q, i zwraca dwie części i dwie ilości.
Excel
Zakładając C2 = taniej, D2 = drożej, M2 = cel, Q2 = całkowita ilość:
1=D2-M2 ' cheaper parts (D − M)
2=M2-C2 ' dearer parts (M − C)
3=(D2-M2)/((D2-M2)+(M2-C2))*Q2 ' cheaper amount
4=(M2-C2)/((D2-M2)+(M2-C2))*Q2 ' dearer amount
51def alligation(c, d, m, q=None):
2 if not (c < m < d):
3 raise ValueError("need cheaper < target < dearer")
4 cheaper_parts, dearer_parts = d - m, m - c
5 total = cheaper_parts + dearer_parts
6 if q is None:
7 return cheaper_parts, dearer_parts
8 return cheaper_parts / total * q, dearer_parts / total * q
91function alligation(c, d, m, q) {
2 if (!(c < m && m < d)) throw new Error("need cheaper < target < dearer");
3 const cheaper = d - m, dearer = m - c, total = cheaper + dearer;
4 return q == null
5 ? { cheaper, dearer }
6 : { cheaperAmount: (cheaper / total) * q, dearerAmount: (dearer / total) * q };
7}
81double[] alligation(double c, double d, double m, double q) {
2 if (!(c < m && m < d)) throw new IllegalArgumentException("need c < m < d");
3 double cheaper = d - m, dearer = m - c, total = cheaper + dearer;
4 return new double[] { cheaper / total * q, dearer / total * q };
5}
61(double cheaper, double dearer) Alligation(double c, double d, double m, double q)
2{
3 if (!(c < m && m < d)) throw new ArgumentException("need c < m < d");
4 double cp = d - m, dp = m - c, total = cp + dp;
5 return (cp / total * q, dp / total * q);
6}
71#include <stdexcept>
2#include <utility>
3std::pair<double, double> alligation(double c, double d, double m, double q) {
4 if (!(c < m && m < d)) throw std::invalid_argument("need c < m < d");
5 double cheaper = d - m, dearer = m - c, total = cheaper + dearer;
6 return { cheaper / total * q, dearer / total * q };
7}
81func Alligation(c, d, m, q float64) (float64, float64, error) {
2 if !(c < m && m < d) {
3 return 0, 0, errors.New("need c < m < d")
4 }
5 cheaper, dearer := d-m, m-c
6 total := cheaper + dearer
7 return cheaper / total * q, dearer / total * q, nil
8}
91fn alligation(c: f64, d: f64, m: f64, q: f64) -> Option<(f64, f64)> {
2 if !(c < m && m < d) { return None; }
3 let (cheaper, dearer) = (d - m, m - c);
4 let total = cheaper + dearer;
5 Some((cheaper / total * q, dearer / total * q))
6}
71function alligation($c, $d, $m, $q) {
2 if (!($c < $m && $m < $d)) throw new InvalidArgumentException('need c < m < d');
3 $cheaper = $d - $m; $dearer = $m - $c; $total = $cheaper + $dearer;
4 return [$cheaper / $total * $q, $dearer / $total * $q];
5}
61def alligation(c, d, m, q)
2 raise ArgumentError, "need c < m < d" unless c < m && m < d
3 cheaper, dearer = d - m, m - c
4 total = cheaper + dearer
5 [cheaper / total * q, dearer / total * q]
6end
71alligation <- function(c, d, m, q) {
2 stopifnot(c < m, m < d)
3 cheaper <- d - m; dearer <- m - c; total <- cheaper + dearer
4 c(cheaper = cheaper / total * q, dearer = dearer / total * q)
5}
6Często zadawane pytania
Co jeśli cel nie leży między dwiema wartościami? Wtedy żadna mieszanina tych dwóch nie może go osiągnąć — mieszanina przedmiotu za 30 zawsze ląduje między 30. Narzędzie to flaguje zamiast zwracać fałszywy stosunek.
Czy jednostka ma znaczenie? Nie. Stosunek zależy tylko od różnic na jednej spójnej skali, więc ceny, procenty i mg/mL wszystkie działają — po prostu trzymaj wszystkie trzy wejścia w tej samej jednostce.
Czy mogę go używać dla trzech lub więcej składników? To narzędzie obsługuje przypadek dwuskładnikowy. Problemy z trzema lub więcej komponentami mają wiele ważnych odpowiedzi i zwykle rozwiązuje się je przez łączenie składników lub równania liniowe.
Czy ligacja to to samo co średnia ważona? Są odwrotne. Średnia ważona (ligacja medialna) zamienia ilości w wartość mieszaniny; ligacja alternatywna zamienia docelową wartość w ilości.
Źródła
- Alligation — Wikipedia — definicje ligacji alternatywnej i medialnej oraz reguła leżąca u podstaw.
- Alligation Calculator — Omni Calculator — forma oparta na stężeniu używana w farmacji, z przykładami przepracowanymi.
- Pharmaceutical calculations by alligation method — EGPAT — przewodnik od podstaw dotyczący krzyża ligacji do przygotowywania leków.