Alligationskalkylator — Blandningsförhållande och mängder
Hitta förhållandet för att blanda en billigare och en dyrare ingrediens (eller en låg och hög koncentration) för att nå ett målvärde, plus den exakta mängden av varje. Gratis alligationsalternativkalkylator med ett bearbetat kordiagram.
Alligationskalkylator
Ange värdet på den billigare ingrediensen, den dyrare (dyrare) ingrediensen och målblandningsvärdet. Verktyget returnerar förhållandet i vilket de ska blandas — och de exakta mängderna om du anger en totalt mängd.
Indatavärden
Resultat
Blandningsförhållande
Mängder
Alligationskorsning
Alligationsformel
10.00 : 10.00 = (30.00 − 20.00) : (20.00 − 10.00)
Blandningssammansättning
Dokumentation
Vad denna kalkylator gör (ELI5)
Du har två saker av olika värde — en billig och en dyr — och du vill blanda dem till en blandning som ligger på något målvärde däremellan. Alligation säger dig hur mycket av varje du ska använda.
Tänk på en gungbräda. Målvärdet är vridpunkten. Ingrediensen vars värde är långt från målvärdet måste vara liten i mängd, och den som ligger nära målvärdet måste vara stor, så de två sidorna balanserar. Alligation är bara aritmetiken för den balansen.
Skriv in tre tal — det billigare värdet, det dyrare värdet och målvärdet — och verktyget ger dig:
- blandningsförhållandet (t.ex. 1 : 2, vilket betyder 1 del billigare till 2 delar dyrare),
- de exakta mängderna av varje ingrediens när du anger en total mängd,
- ett kordiagram och ett blandningsdiagram så du kan se blandningen.
"Värde" kan vara ett pris, en procentuell styrka eller en koncentration (%, mg/mL, w/v) — vad som helst mätt på en konsistent skala.
Formeln
Med ett billigare värde C, ett dyrare värde D och ett målblandningsvärde M där C < M < D:
Varje ingrediens delar kommer från motsatt skillnad — ju längre målvärdet ligger från en ingrediens, desto mer av den andra ingrediensen behöver du. Om du också vet den totala mängden Q:
Alligationskorsningen
Det klassiska sättet att presentera detta är "korset": sätt de två ingrediensvärden på vänster, målvärdet i mitten, och subtrahera längs varje diagonal. Varje skillnad hamnar i motsatt hörn och blir den ingrediensens delar.
1 Dyrare (D) ───────┐ ┌─────── (M − C) = dyrare delar
2 ╲ ╱
3 Målvärde (M)
4 ╱ ╲
5 Billigare (C) ───────┘ └─────── (D − M) = billigare delar
6Utarbetat exempel
Blanda en 30-ingrediens för att sälja för $20:
Lika delar. För 100 enheter totalt, det är 50 av den billigare och 50 av den dyrare — och det blandade värdet är exakt 25 och förhållandet blir 5 : 15 = 1 : 3: ju närmare målvärdet ligger det dyrare värdet, desto mer dyrare ingrediens behöver du.
Alligation alternativ vs. alligation medial
- Alligation alternativ (vad detta verktyg gör) — du vet de två ingrediensvärden och målvärdet, och du löser för förhållandet.
- Alligation medial — du vet mängderna och värdena för ingredienserna, och du löser för det resulterande blandningsvärdet. Det är bara det viktade genomsnittet: .
De två är inverser av varandra, vilket är ett praktiskt sätt att kontrollera ditt arbete: mata mängderna detta verktyg ger dig tillbaka till ett vägt genomsnitt och du bör landa på ditt målvärde.
Var det används
- Apoteksformulering — blanda en hög- och lågstyrkeberedning (t.ex. en 70%- och en 20%-lösning) till en ordinerad koncentration. Värdena är procentsatser eller mg/mL snarare än dollar; aritmetiken är identisk.
- Företag och prissättning — blanda billigt och premiummaterial för att träffa ett målkostnad eller försäljningspris per enhet.
- Kemi och mat/dryck — späd eller berika till en målkoncentration, styrka eller Brix.
Eftersom regeln bara behöver ett enda värde på en konsistent skala, täcker samma tre ingångar alla dessa.
Hur du använder det
- Ange det billigare värdet, det dyrare värdet och målblandningsvärdet (valfritt konsistent enhet).
- Ange eventuellt totala mängden för att få den exakta mängden av varje ingrediens.
- Läs förhållandet, det förenklade förhållandet och mängderna; kordiagrammet och blandningsdiagrammet visar uppdelningen.
Inmatningar synkroniseras till sidans URL, så du kan bokmärka eller dela en exakt inställning. Målvärdet måste ligga helt mellan de två ingrediensvärden — annars kan ingen blandning av dem nå det, och verktyget säger till.
Beräkna det i kod
Varje kodavsnitt tar det billigare värdet c, dyrare värdet d, målvärdet m och totala mängden q, och returnerar de två delarna och de två mängderna.
Excel
Antar C2 = billigare, D2 = dyrare, M2 = målvärde, Q2 = total mängd:
1=D2-M2 ' billigare delar (D − M)
2=M2-C2 ' dyrare delar (M − C)
3=(D2-M2)/((D2-M2)+(M2-C2))*Q2 ' billigare mängd
4=(M2-C2)/((D2-M2)+(M2-C2))*Q2 ' dyrare mängd
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}
6Ofta ställda frågor
Vad om målvärdet inte ligger mellan de två värdena? Då kan ingen blandning av de två nå det — en blandning av en 30-artikel hamnar alltid mellan 30. Verktyget flaggar detta istället för att returnera ett falskt förhållande.
Spelar enheten roll? Nej. Förhållandet beror bara på skillnader på en konsistent skala, så priser, procentsatser och mg/mL fungerar alla — bara håll alla tre ingångar i samma enhet.
Kan jag använda det för tre eller fler ingredienser? Detta verktyg hanterar tvåingrediensfallet. Problem med tre eller fler komponenter har många giltiga svar och löses vanligtvis genom att para ihop ingredienser eller med linjära ekvationer.
Är alligation samma sak som ett vägt genomsnitt? De är inverser. Ett vägt genomsnitt (alligation medial) förvandlar mängder till ett blandningsvärde; alligation alternativ förvandlar ett målvärde till mängder.
Källor
- Alligation — Wikipedia — definitioner av alligation alternativ och medial och den underliggande regeln.
- Alligation Calculator — Omni Calculator — den koncentrationsbaserade formen som används inom farmaciindustrin, med utarbetade exempel.
- Pharmaceutical calculations by alligation method — EGPAT — grundläggande genomgång av alligationskorsningen för formulering.