Kalkulačka Alligace — Poměr Míchání & Množství
Najděte poměr pro smíchání levnější a dražší složky (nebo nízké a vysoké koncentrace) aby dosáhla cílové hodnoty, plus přesné množství každé. Bezplatná kalkulačka alligace-alternativní s odpracovaným křížovým diagramem.
Kalkulačka Alligace
Zadejte hodnotu levnější složky, dražší (dražší) složky a cílovou hodnotu směsi. Nástroj vrátí poměr, ve kterém je smíchat — a přesné množství, pokud zadáte celkové množství.
Vstupní hodnoty
Výsledky
Poměr míchání
Množství
Alligační kříž
Alligační vzorec
10.00 : 10.00 = (30.00 − 20.00) : (20.00 − 10.00)
Složení směsi
Dokumentace
Co dělá tato kalkulačka (Vysvětleno jednoduše)
Máte dvě věci různé hodnoty — jednu levnější a jednu dražší — a chcete je smíchat do směsi, která má nějakou cílovou hodnotu mezi nimi. Alligace vám řekne, kolik každé z nich máte použít.
Pomyslete si na houpačku. Cílová hodnota je opora. Složka, jejíž hodnota je daleko od cíle, musí být malá množství, a ta, která je blízko cíle, musí být velká, aby se obě strany vyvážily. Alligace je jen aritmetika tohoto vyvážení.
Zadejte tři čísla — levnější hodnotu, dražší hodnotu a cíl — a nástroj vám dá:
- poměr míchání (např. 1 : 2, což znamená 1 díl levnější na 2 díly dražší),
- přesné množství každé složky, když zadáte celkové množství,
- křížový diagram a graf složení abyste viděli směs.
"Hodnota" může být cena, procento síly nebo koncentrace (%, mg/mL, w/v) — cokoliv měřeno na jedné konzistentní stupnici.
Vzorec
S levnější hodnotou C, dražší hodnotou D a cílovou hodnotou směsi M kde C < M < D:
Díly každé složky pocházejí z opačného rozdílu — čím dále cíl leží od složky, tím více druhé složky potřebujete. Pokud znáte také celkové množství Q:
Alligační kříž
Klasický způsob jak to vyložit je "kříž": vložte hodnoty dvou složek vlevo, cíl uprostřed, a odečtěte po diagonálách. Každý rozdíl dopadne na opačný roh a stane se počtem dílů té složky.
1 Dražší (D) ───────┐ ┌─────── (M − C) = dražší díly
2 ╲ ╱
3 Cíl (M)
4 ╱ ╲
5 Levnější (C) ──────┘ └─────── (D − M) = levnější díly
6Odpracovaný příklad
Smíchejte složku za 10 pro prodej za 20 $:
Stejné díly. Na 100 jednotek celkem, to je 50 levnější a 50 dražší — a smíšená hodnota je přesně 20 a poměr se stane 5 : 15 = 1 : 3: čím blíž cíl leží k dražší hodnotě, tím více dražší složky potřebujete.
Alligace alternativní versus alligace střední
- Alligace alternativní (co dělá tento nástroj) — znáte dvě hodnoty složek a cíl, a řešíte poměr.
- Alligace střední — znáte množství a hodnoty složek, a řešíte výslednou hodnotu směsi. To je jen vážený průměr: .
Tyto dva jsou inverze jednoho druhého, což je užitečný způsob jak zkontrolovat vaši práci: zadejte množství, která tento nástroj dá, zpět do váženého průměru a měli byste se dostat na váš cíl.
Kde se používá
- Farmaceutické míchání — smíchejte vysokou a nízkou sílu přípravku (např. 70% a 20% roztok) na předepsanou koncentraci. Hodnoty jsou procenta nebo mg/mL místo dolarů; aritmetika je shodná.
- Obchod & ceny — smíchejte levnou a prémiovou zásobu aby dosáhla cílové jednotkové ceny nebo prodejní ceny.
- Chemie & jídlo/nápoje — zředěte nebo zbogatte na cílovou koncentraci, pravost nebo Brix.
Protože pravidlo potřebuje jen jednu hodnotu na konzistentní stupnici, stejné tři vstupy pokrývají všechny tyto.
Jak to používat
- Zadejte levnější hodnotu, dražší hodnotu a cílovou hodnotu směsi (jakákoliv konzistentní jednotka).
- Volitelně zadejte celkové množství abyste dostali přesné množství každé složky.
- Přečtěte si poměr, zjednodušený poměr a množství; křížový diagram a donut ukazují rozdělení.
Vstupy se synchronizují s adresou URL stránky, takže si můžete zaktualizovat nebo sdílet přesné nastavení. Cíl musí ležet striktně mezi dvěma hodnotami složek — jinak žádná jejich směs to nemůže dosáhnout, a nástroj to říká.
Vypočítejte to v kódu
Každý úryvek vezme levnější hodnotu c, dražší hodnotu d, cíl m a celkové množství q, a vrátí dva díly a dvě množství.
Excel
Předpokládejme C2 = levnější, D2 = dražší, M2 = cíl, Q2 = celkové množství:
1=D2-M2 ' levnější díly (D − M)
2=M2-C2 ' dražší díly (M − C)
3=(D2-M2)/((D2-M2)+(M2-C2))*Q2 ' levnější množství
4=(M2-C2)/((D2-M2)+(M2-C2))*Q2 ' dražší množství
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}
6Často kladené otázky
Co když cíl není mezi dvěma hodnotami? Pak žádná jejich směs to nemůže dosáhnout — směs položky za 10 vždy skončí mezi 10 . Nástroj to označí místo vrácení nepravdivého poměru.
Má jednotka záležitost? Ne. Poměr závisí jen na rozdílech na jedné konzistentní stupnici, takže ceny, procenta a mg/mL všechny fungují — jen všechny tři vstupy udržujte v stejné jednotce.
Mohu to použít pro tři nebo více složek? Tento nástroj zpracovává případ dvou složek. Problémy se třemi nebo více složkami mají mnoho platných odpovědí a obvykle se řeší spárováním složek nebo lineárními rovnicemi.
Je alligace totéž jako vážený průměr? Jsou to inverze. Vážený průměr (alligace střední) změní množství na hodnotu směsi; alligace alternativní změní cílovou hodnotu na množství.
Zdroje
- Alligace — Wikipedia — definice alligace alternativní a střední a základní pravidlo.
- Alligační kalkulačka — Omni Calculator — forma založená na koncentraci používaná ve farmacii, s odpracovanými příklady.
- Farmaceutické výpočty metodou alligace — EGPAT — prvotní procházka alligačním křížem pro míchání.