Evalúe una bolsa de monedas
Una bolsa de monedas estadounidenses nuevas es robada de un banco. Sin abrir la bolsa, ¿qué se puede decir del valor monetario de sus contenidos? Una característica física obvia que se puede medir fácilmente es el peso de la bolsa. Suponiendo que es una bolsa de monedas de una libra, combine los conocimientos técnicos de Wolfram Knowledgebase sobre monedas con la habilidad incorporada para solucionar ecuaciones lineares, para estudiar el valor esperado del botín.
Para empezar, genere una lista de monedas estadounidenses en circulación actual por medio de una clase de entidades implícitamente definida.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_23.png)
EntityClass["CurrencyDenomination", {EntityProperty[
"CurrencyDenomination", "IssuingCountry"] ->
Entity["Country", "UnitedStates"],
EntityProperty["CurrencyDenomination", "Format"] -> "coin"}]
![](assets.es/valuate-a-bag-of-coins/O_20.png)
Expanda la clase de entidades implícitamente definida haciendo clic en [+], encuentre sus miembros, y ordénelos por valor.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_24.png)
coinsUS = EntityList[
EntityClass[
"CurrencyDenomination", {
EntityProperty[
"CurrencyDenomination", "IssuingCountry"] -> Entity[
"Country", "UnitedStates"],
EntityProperty["CurrencyDenomination", "Format"] -> "coin"}]] //
SortBy[#[EntityProperty["CurrencyDenomination", "Value"]] &]
![](assets.es/valuate-a-bag-of-coins/O_21.png)
Cree un collage de imágenes de moneda.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_25.png)
ImageCollage[
EntityValue[coinsUS,
EntityProperty["CurrencyDenomination", "Image"]],
Background -> White]
![](assets.es/valuate-a-bag-of-coins/O_22.png)
Resuma las propiedades de las monedas en una tabla.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_26.png)
TextGrid[{ImageResize[#2, 60], #1,
Row[Riffle[#3, Style[" | ", Gray]]]} & @@@
EntityValue[
coinsUS, {EntityProperty["CurrencyDenomination", "Entity"],
EntityProperty["CurrencyDenomination", "Image"],
EntityProperty["CurrencyDenomination", "PeopleOnCurrency"]}],
Alignment -> {Left, Center}, Dividers -> All] // TraditionalForm
![](assets.es/valuate-a-bag-of-coins/O_23.png)
Obtenga denominaciones (en centavos) y masas (en gramos) de monedas y convierta las masas en números racionales.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_27.png)
{values, masses} =
Transpose[EntityValue[coinsUS, {"Value", "Weight"}]]
![](assets.es/valuate-a-bag-of-coins/O_24.png)
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_28.png)
coinsandweights = Transpose[{
QuantityMagnitude[UnitConvert[values, "USCents"]],
Rationalize[QuantityMagnitude[N[UnitConvert[masses, "Grams"]]]]
}]
![](assets.es/valuate-a-bag-of-coins/O_25.png)
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_29.png)
lcm = LCM @@ Denominator[Rationalize[coinsandweights][[All, 2]]];
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_30.png)
rationalcoinweights = lcm #2 & @@@ Rationalize[coinsandweights]
![](assets.es/valuate-a-bag-of-coins/O_26.png)
Encuentre todas las distribuciones de monedas que son compatibles con una medida de peso de una libra con un error de medición de ± 0.1% (asumiendo que la bolsa misma contribuye de forma no significativa).
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_31.png)
meanWeight =
QuantityMagnitude[UnitConvert[Quantity[1, "Pounds"], "Grams"]];
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_32.png)
error = Normal[Quantity[0.1, "Percent"]];
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_33.png)
{minScaledWeight,
maxScaledWeight} = {Floor[lcm meanWeight (1 - error/2)],
Ceiling[lcm meanWeight (1 + error/2)]}
![](assets.es/valuate-a-bag-of-coins/O_27.png)
Use FrobeniusSolve para determinar todas las posibles colecciones de moneda dando el peso total requerido.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_35.png)
Flatten[allSolutions, 1] // Length
![](assets.es/valuate-a-bag-of-coins/O_28.png)
Encuentre el mínimo, la mediana, la media y el máximo de los valores monetarios totales de las monedas en la bolsa (asumiendo que todas las combinaciones son igualmente probables).
![](assets.es/valuate-a-bag-of-coins/O_29.png)
Cree un histograma de la distribución del valor monetario total.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_39.png)
Histogram[dollarValues, Automatic, "PDF",
AxesLabel -> {Quantity[None, "USDollars"], "fraction"}]
![](assets.es/valuate-a-bag-of-coins/O_30.png)
La distribución de peso de todas las bolsas es bastante uniforme.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_41.png)
Histogram[weightvalues, 50, "PDF",
AxesLabel -> {Quantity[None, "USDollars"], "fraction"}]
![](assets.es/valuate-a-bag-of-coins/O_31.png)
Represente gráficamente la distribución del número de monedas.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_42.png)
Histogram[Total /@ Flatten[allSolutions, 1], {5}]
![](assets.es/valuate-a-bag-of-coins/O_32.png)
La distribución bivariante del valor monetario versus el número de monedas en la bolsa.
![Click for copyable input](assets.es/valuate-a-bag-of-coins/In_43.png)
Histogram3D[{coins.#/100., Total[#]} & /@ Flatten[allSolutions, 1],
AxesLabel -> {Quantity[None, "USDollars"], "coins"}]
![](assets.es/valuate-a-bag-of-coins/O_33.png)