Alligation-rekenmachine — Mengverhouding & Hoeveelheden
Vind de verhouding om een goedkoop en een duur ingrediënt (of een lage en hoge concentratie) te mengen om een doelwaarde te bereiken, plus de exacte hoeveelheid van elk. Gratis alligation-alternate rekenmachine met een uitgewerkt kruisdiagram.
Alligation-rekenmachine
Voer de waarde van het goedkope ingrediënt, het dure (meer dure) ingrediënt en de doelmengselwaarde in. De tool geeft de verhouding terug waarin ze moeten worden gemengd — en de exacte hoeveelheden als je een totale hoeveelheid opgeeft.
Invoerwaarden
Resultaten
Mengverhouding
Hoeveelheden
Alligation-kruis
Alligation-formule
10.00 : 10.00 = (30.00 − 20.00) : (20.00 − 10.00)
Mengselsamenstelling
Documentatie
Wat deze calculator doet (Eenvoudig uitgelegd)
Je hebt twee dingen met verschillende waarde — een goedkope en een dure — en je wilt ze mengen tot een mengsel dat ergens op een doelwaarde tussenin zit. Alligation vertelt je hoeveel van elk je moet gebruiken.
Stel je een wip voor. De doelwaarde is het draaipunt. Het ingrediënt waarvan de waarde ver van het doel afligt, moet weinig zijn, en degene dicht bij het doel moet veel zijn, zodat beide zijden in balans zijn. Alligation is gewoon de rekenkunst van die balans.
Voer drie getallen in — de goedkope waarde, de dure waarde en het doel — en de tool geeft je:
- de mengverhouding (bijv. 1 : 2, wat betekent 1 deel goedkoop tot 2 delen duur),
- de exacte hoeveelheden van elk ingrediënt zodra je een totale hoeveelheid invoert,
- een kruisdiagram en een samenstelling-grafiek zodat je het mengsel kunt zien.
"Waarde" kan een prijs, een percentageconcentratie of een concentratie (%, mg/mL, w/v) zijn — alles wat op één consistente schaal wordt gemeten.
De formule
Met een goedkope waarde C, een dure waarde D en een doelmengselwaarde M waarbij C < M < D:
De delen van elk ingrediënt komen uit het tegenovergestelde verschil — hoe verder het doel van een ingrediënt afligt, hoe meer van het andere ingrediënt je nodig hebt. Als je ook de totale hoeveelheid Q weet:
Het alligation-kruis
De klassieke manier om dit uit te zetten is het "kruis": plaats de twee ingrediëntwaarden aan de linkerkant, het doel in het midden, en trek af langs elke diagonaal. Elk verschil belandt in de tegenovergestelde hoek en wordt het aandeel van dat ingrediënt.
1 Duur (D) ───────┐ ┌─────── (M − C) = dure delen
2 ╲ ╱
3 Doel (M)
4 ╱ ╲
5 Goedkoop (C) ───────┘ └─────── (D − M) = goedkope delen
6Uitgewerkt voorbeeld
Meng een ingrediënt van 30 om te verkopen voor $20:
Gelijke delen. Voor 100 eenheden totaal, dat is 50 van de goedkope en 50 van de dure — en de gemengde waarde is precies 25 en de verhouding wordt 5 : 15 = 1 : 3: hoe dichterbij het doel bij de dure waarde zit, hoe meer duur ingrediënt je nodig hebt.
Alligation alternate vs. alligation medial
- Alligation alternate (wat deze tool doet) — je kent de twee ingrediëntwaarden en het doel, en je lost de verhouding op.
- Alligation medial — je kent de hoeveelheden en waarden van de ingrediënten, en je lost de resulterende mengselwaarde op. Dat is gewoon het gewogen gemiddelde: .
De twee zijn inverses van elkaar, wat een handige manier is om je werk te controleren: voer de hoeveelheden die deze tool geeft terug in een gewogen gemiddelde en je zou je doel moeten bereiken.
Waar het wordt gebruikt
- Apotheeksamenstelling — meng een sterke en een zwakke bereiding (bijv. een 70% en een 20% oplossing) tot een voorgeschreven concentratie. Waarden zijn percentages of mg/mL in plaats van dollars; de rekenkunst is identiek.
- Bedrijf en prijsstelling — meng goedkope en premiumvoorraad om een doelkosten- of verkoopprijs te bereiken.
- Scheikunde & voedsel/drank — verdun of versterken tot een doelconcentratie, bewijs of Brix.
Omdat de regel slechts één waarde op een consistente schaal nodig heeft, dekken dezelfde drie ingangen al deze gevallen.
Hoe het te gebruiken
- Voer de goedkope waarde, de dure waarde en de doelmengselwaarde in (elke consistente eenheid).
- Voer optioneel de totale hoeveelheid in om de exacte hoeveelheid van elk ingrediënt te krijgen.
- Lees de verhouding, de vereenvoudigde verhouding en de hoeveelheden; het kruisdiagram en de donut tonen de verdeling.
Ingangen synchroniseren met de pagina-URL, dus je kunt een exact setup bladwijzeren of delen. Het doel moet strikt tussen de twee ingrediëntwaarden liggen — anders kan geen mengsel ervan het bereiken, en de tool zegt dit.
Bereken het in code
Elk codefragment neemt de goedkope waarde c, dure waarde d, doel m en totale hoeveelheid q, en geeft de twee delen en de twee hoeveelheden terug.
Excel
Aangenomen dat C2 = goedkoop, D2 = duur, M2 = doel, Q2 = totale hoeveelheid:
1=D2-M2 ' goedkope delen (D − M)
2=M2-C2 ' dure delen (M − C)
3=(D2-M2)/((D2-M2)+(M2-C2))*Q2 ' goedkope hoeveelheid
4=(M2-C2)/((D2-M2)+(M2-C2))*Q2 ' dure hoeveelheid
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}
6Veelgestelde vragen
Wat gebeurt er als het doel niet tussen de twee waarden ligt? Dan kan geen mengsel van de twee het bereiken — een mengsel van een 30 artikel belandt altijd tussen 30. De tool markeert dit in plaats van een verkeerde verhouding terug te geven.
Doet de eenheid ertoe? Nee. De verhouding hangt alleen af van verschillen op één consistente schaal, dus prijzen, percentages en mg/mL werken allemaal — zorg ervoor dat alle drie de ingangen in dezelfde eenheid zijn.
Kan ik het gebruiken voor drie of meer ingrediënten? Deze tool verwerkt de twee-ingrediëntenzaak. Problemen met drie of meer componenten hebben veel geldige antwoorden en worden meestal opgelost door ingrediënten te koppelen of met lineaire vergelijkingen.
Is alligation hetzelfde als een gewogen gemiddelde? Ze zijn inverses. Een gewogen gemiddelde (alligation medial) verandert hoeveelheden in een mengselwaarde; alligation alternate verandert een doelwaarde in hoeveelheden.
Bronnen
- Alligation — Wikipedia — definities van alligation alternate en medial en de onderliggende regel.
- Alligation Calculator — Omni Calculator — de concentratiegebaseerde vorm die in de apotheek wordt gebruikt, met uitgewerkte voorbeelden.
- Pharmaceutical calculations by alligation method — EGPAT — walkthrough van eerste beginselen van het alligation-kruis voor samenstelling.