Alligationsomregner — Blandingsforhold og mængder
Find forholdet til blanding af en billig og en dyr ingrediens (eller en lav og høj koncentration) for at ramme en målværdi, plus den nøjagtige mængde af hver. Gratis alligation-alternativ-omregner med et arbejdet krydsiagram.
Alligationsomregner
Angiv værdien af den billigere ingrediens, den dyrere (dyrere) ingrediens og målblandingsværdien. Værktøjet returnerer forholdet, som de skal blandes i — og de nøjagtige mængder, hvis du angiver en samlet mængde.
Inputværdier
Resultater
Blandingsforhold
Mængder
Alligationskryds
Alligationsformel
10.00 : 10.00 = (30.00 − 20.00) : (20.00 − 10.00)
Blandingssammensætning
Dokumentation
Hvad denne lommeregner gør (ELI5)
Du har to ting med forskellig værdi — en billig og en dyr — og du vil blande dem til en blanding, der ligger på en målværdi mellem dem. Alligation fortæller dig, hvor meget af hver du skal bruge.
Tænk på en vippe. Målværdien er omdrejningspunktet. Ingrediensen, hvis værdi er langt fra målværdien, skal være lille i mængde, og den tæt på målværdien skal være stor, så de to sider balancerer. Alligation er bare aritmetikken for den balance.
Skriv tre tal — den billigere værdi, den dyrere værdi og målværdien — og værktøjet giver dig:
- blandingsforholdet (f.eks. 1:2, hvilket betyder 1 del billig til 2 dele dyr),
- de præcise mængder af hver ingrediens, når du angiver en samlet mængde,
- et krydsiagram og et sammensætningsdiagram, så du kan se blandingen.
"Værdi" kan være en pris, en procentuel styrke eller en koncentration (%, mg/mL, w/v) — alt målt på en konsistent skala.
Formlen
Med en billigere værdi C, en dyrere værdi D og en målblanding værdi M, hvor C < M < D:
Hver ingrediens dele kommer fra modsatretningen forskel — jo længere målværdien ligger fra en ingrediens, jo mere af den anden ingrediens skal du bruge. Hvis du også kender den samlede mængde Q:
Alligationskrydset
Den klassiske måde at lægge dette ud er "krydset": sæt de to ingredienværdier på venstre side, målværdien i midten, og subtrahér langs hver diagonal. Hver forskel lander i det modsatte hjørne og bliver denne ingrediens dele.
1 Dyr (D) ───────┐ ┌─────── (M − C) = dyr dele
2 ╲ ╱
3 Målværdi (M)
4 ╱ ╲
5 Billig (C) ───────┘ └─────── (D − M) = billig dele
6Arbejdet eksempel
Bland en 30-ingrediens for at sælge til $20:
Lige dele. For 100 enheder i alt er det 50 af den billigere og 50 af den dyrere — og den blandede værdi er præcis 25, og forholdet bliver 5 : 15 = 1 : 3: jo tættere målværdien ligger på den dyrere værdi, jo mere dyr ingrediens skal du bruge.
Alligation alternate vs. alligation medial
- Alligation alternate (hvad dette værktøj gør) — du kender de to ingredienværdier og målværdien, og du løser for forholdet.
- Alligation medial — du kender mængderne og værdierne af ingredienserne, og du løser for den resulterende blanding værdi. Det er bare det vægtede gennemsnit: .
De to er indbyrdes inverse, hvilket er en praktisk måde at kontrollere dit arbejde på: feed de mængder, dette værktøj giver dig tilbage i et vægtet gennemsnit, og du skal lande på din målværdi.
Hvor det bruges
- Apoteksblanding — blend en høj- og lavstyrke forberedelse (f.eks. en 70% og en 20% opløsning) til en foreskrevet koncentration. Værdier er procenter eller mg/mL i stedet for dollars; aritmetikken er identisk.
- Forretning og prissætning — blend et billigt og et premium lager for at ramme en målomkostning eller salgspris.
- Kemi og mad/drikke — fortynde eller berige til en målkoncentration, styrke eller Brix.
Fordi reglen kun kræver en enkelt værdi på en konsistent skala, dækker de samme tre input alle disse.
Sådan bruger du det
- Skriv den billigere værdi, den dyrere værdi og målblanding værdien (en konsistent enhed).
- Skriv eventuelt den samlede mængde for at få den nøjagtige mængde af hver ingrediens.
- Læs forholdet, det forenklede forhold og mængderne; krydsiagrammet og donutten viser opdelingen.
Inputs synkroniseres til sidens URL, så du kan bogmærke eller dele et præcist opsætning. Målværdien skal ligge strengt mellem de to ingredienværdier — ellers kan ingen blanding af dem nå det, og værktøjet siger det.
Beregn det i kode
Hver snippet tager den billigere værdi c, dyrere værdi d, målværdi m og samlet mængde q, og returnerer de to dele og de to mængder.
Excel
Forudsat C2 = billig, D2 = dyr, M2 = målværdi, Q2 = samlet mængde:
1=D2-M2 ' billig dele (D − M)
2=M2-C2 ' dyr dele (M − C)
3=(D2-M2)/((D2-M2)+(M2-C2))*Q2 ' billig mængde
4=(M2-C2)/((D2-M2)+(M2-C2))*Q2 ' dyr mængde
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}
6Ofte stillede spørgsmål
Hvad hvis målværdien ikke ligger mellem de to værdier? Så kan ingen blanding af de to nå det — en blanding af en 30 vare lander altid mellem 30. Værktøjet markerer dette i stedet for at returnere et falskt forhold.
Betyder enheden noget? Nej. Forholdet afhænger kun af forskelle på en konsistent skala, så priser, procenter og mg/mL fungerer alle — hold bare alle tre input i samme enhed.
Kan jeg bruge det til tre eller flere ingredienser? Dette værktøj håndterer det to-ingrediens tilfælde. Problemer med tre eller flere komponenter har mange gyldige svar og løses normalt ved at parre ingredienser eller med lineære ligninger.
Er alligation det samme som et vægtet gennemsnit? De er inverse. Et vægtet gennemsnit (alligation medial) omdanner mængder til en blanding værdi; alligation alternate omdanner en målværdi til mængder.
Kilder
- Alligation — Wikipedia — definitioner af alligation alternate og medial og den underliggende regel.
- Alligation Calculator — Omni Calculator — den koncentration-baseret form brugt i farmaci, med arbejdede eksempler.
- Pharmaceutical calculations by alligation method — EGPAT — første-princip gennemgang af alligationskrydset for blanding.