26 votos

Encontrar dinero real en un extraño dispositivo de pesaje

Usted tiene 50 monedas cada una pesa 20 gramos o 10 gramos. Cada uno está etiquetado de 0 a 49 de modo que usted puede contar las monedas aparte. Tiene un peso del dispositivo así. En la primera vuelta usted puede poner tantas monedas como te gusta en la báscula y que le dirá exactamente cuánto pesan.

Sin embargo, hay algo extraño acerca de la báscula. Si pones las monedas de $x_1, x_2, ..., x_j$ en el dispositivo la primera vez, entonces usted tiene que poner monedas $(x_1+1) \bmod 50, (x_2+1) \bmod 50, ..., (x_j+1) \bmod 50$ en la escala de la próxima vez, y monedas de $(x_1+2) \bmod 50, (x_2+2) \bmod 50, ..., (x_j+2) \bmod 50$ la próxima vez y así sucesivamente. En otras palabras, todos los pesajes se define por la elección de monedas que usted elija para sopesar la primera vez.

En virtud de este artículo, ¿cuál es el menor número de pesajes que siempre te dicen exactamente el que las monedas pesan 10 gramos y un peso de 20?

Claramente, usted puede simplemente poner una moneda en el dispositivo en la primera vuelta y entonces tomaría exactamente $50$ pesajes para resolver el problema.


Aquí es un ejemplo, cuando usted tiene sólo $4$ monedas que lleva sólo $3$ pesajes. Primero poner las monedas de $1$,$2$ y $3$ en la escala. Para el próximo pesaje tendrá monedas $0$, $2$ y $3$. Para el último pesaje tendrá monedas $0$, $1$ y $3$ y usted sabrá exactamente qué monedas son verdaderos y cuáles son falsos.


Aquí hay otro ejemplo, cuando usted tiene $9$ monedas que lleva sólo $6$ pesajes. Primero poner las monedas de $2,5,7,8$ en la escala (indexación de $0$ nuevo).

Las respuestas hasta ahora (menor es mejor)

  • 38 por san
  • 35 por Tad
  • 31 por Tad
  • 26 por joriki
  • 25 por joriki (Un historial muy impresionante!)

8voto

JiminyCricket Puntos 143

Actualización: ahora he encontrado dos soluciones que requieren sólo $25$ pesajes:

$$ 01011011100010111101000001100111110011010100011010\;,\\ 00101110001101001010111110001000110010011111011101\;. $$

Estas son las únicas soluciones conocidas (en el contexto de este post) con $k=n\,/\,2$, $n$. Me encontré con ellos utilizando Poco la receta en varias ocasiones de la maximización de la determinante de $AA^\$ por el método de escalada y pruebas el candidato con el mayor determinante entre varias pistas. Los factores determinantes son

$$ 87546852131623099566361867104\;,\\ 93001686149176479553585114299\;. $$

Yo sólo tenía que probar la mitad de una docena de candidatos a encontrar estas dos soluciones, lo que parece coherente con $f(50)\simeq 22.4$. Ahora voy a probar estos dos con $24$ pesajes; que se llevará la mejor parte de un día y se requiere un poco más de un trillón de la diferencia de los vectores que se comprueba en cada caso.


Yo creo que la recompensa debe ir de a Poco, que se desarrolló en el enfoque matemático. Traté de mejorar en él, pero no podía, así que en su lugar lo programé un todo mucho más rápido :-). Aquí está el código. Se utiliza un bit especial de codificación eficiente de aritmética con los vectores de más de $\mathbb F_3$. En mi MacBook, toma la mitad de un minuto de la prueba de un candidato con $31$ pesajes y dos horas para que un candidato con $26$ pesajes.

La mejor solución que se ha encontrado hasta el momento es de $01010111100010011111110000111011000101101100100001$, con $26$ pesajes necesario. Ahora estoy en busca de soluciones con $25$ pesajes, pero que requiere de hasta seis horas de pruebas por cada candidato. Espero que el mínimo para estar cerca de $23$ (ver más abajo). No he implementado Tad del determinante de la maximización del enfoque todavía; la solución fue el tercer candidato que he intentado con muestreo uniforme entre los vectores (muestreo uniforme entre la rotación de clases de equivalencia sería peor, ya que da mayor peso a los periódicos de secuencias).

He aquí un breve resumen de la base matemática del código, principalmente en los siguientes Tad de las ideas y de la notación; $n$ es el número de monedas, y $k$ es el número de pesajes. Podemos tratar a los dos pesos de monedas $0$ y $1$. A continuación, cada posible configuración de peso se caracteriza por un peso binario en el vector, y las diferencias entre el peso de los vectores de ternario vectores con entradas de $-1$, $0$ y $+1$. Una solución es admisible si el $k\times n$ matriz $A$, con entradas de $A_{ij}\in\{0,1\}$, según como moneda de $j$ es pesado en el pesaje de $i$, tiene diferentes productos con todos los posibles vectores de peso, o, equivalentemente, si su producto con todas las de la posible diferencia de los vectores es distinto de cero.

Podemos considerar la diferencia de vectores como vectores de más de $\mathbb F_3$. Sólo la diferencia de los vectores en el núcleo de $A$ través $\mathbb F_3$ puede estar en el núcleo de $A$ través $\mathbb Z$. El núcleo de más de $\mathbb F_3$ general, $3^{n-k}$ de diferencia de vectores, y de estos tenemos a cheque de más de $\mathbb Z$ (en realidad sólo la mitad de ellos, debido a la invariancia bajo negación). La clave para hacer esto de manera eficiente es poco-codificar $\mathbb F_3$ tal que el límite de tiempo de los pasos (además, las componentes de la multiplicación y la suma de vectores) se puede realizar de forma compacta mediante operaciones con números enteros y las búsquedas en una tabla en lugar de recorrer más de $$ n componentes del vector.

Aquí están algunos de los resultados que se expanden en el Tad de los resultados para los valores muy por debajo de los $50$. $n_\text{c}$ es el número de clases de equivalencia bajo de rotación; los números en la fila de encabezado son de $n-k$, y los números en los cuerpos de las dos tablas son los números y fracciones, respectivamente, de la rotación de clases de equivalencia que el rendimiento de una solución.

\begin{array}{c|c|cc} n_\text{c}&n&0&1&2&3&4&5&6&7&8&9\\\hline 2&1&1\\ 3&2&1\\ 4&3&2\\ 6&4&2&1\\ 8&5&6&3\\ 14&6&6&4\\ 20&7&18&12\\ 36&8&20&17&8\\ 60&9&50&45&25&6\\ 108&10&74&71&56&17\\ 188&11&186&178&130&83&4\\ 352&12&216&214&200&135&42\\ 632&13&630&614&520&469&261&6\\ 1182&14&916&910&878&787&535&101\\ 2192&15&2002&1988&1924&1831&1427&648&22\\ 4116&16&3040&3037&3000&2926&2605&1686&330&2\\ 7712&17&7710&7699&7464&7330&6915&5361&2131&34\\ 14602&18&10806&10801&10760&10649&10310&9014&5547&875\\ 27596&19&27594&27582&27270&27110&26565&24773&18964&7307&152\\ 52488&20&40642&40639&40592&40474&40024&38487&33414&20254&3102&2\\ 99880&21&94658&94640&94440&94281&93518&91759&85546&65010&24368&508\\ \end{array}

\begin{array}{c|c|cc} n_\text{c}&n&0&1&2&3&4&5&6&7&8&9\\\hline 2&1&.5000\\ 3&2&.3333\\ 4&3&.5000\\ 6&4&.3333&.1667\\ 8&5&.7500&.3750\\ 14&6&.4286&.2857\\ 20&7&.9000&.6000\\ 36&8&.5556&.4722&.2222\\ 60&9&.8333&.7500&.4167&.1000\\ 108&10&.6852&.6574&.5185&.1574\\ 188&11&.9894&.9468&.6915&.4415&.0213\\ 352&12&.6136&.6080&.5682&.3835&.1193\\ 632&13&.9968&.9715&.8228&.7421&.4130&.0095\\ 1182&14&.7750&.7699&.7428&.6658&.4526&.0854\\ 2192&15&.9133&.9069&.8777&.8353&.6510&.2956&.0100\\ 4116&16&.7386&.7379&.7289&.7109&.6329&.4096&.0802&.0005\\ 7712&17&.9997&.9983&.9678&.9505&.8967&.6952&.2763&.0044\\ 14602&18&.7400&.7397&.7369&.7293&.7061&.6173&.3799&.0599\\ 27596&19&.9999&.9995&.9882&.9824&.9626&.8977&.6872&.2648&.0055\\ 52488&20&.7743&.7743&.7734&.7711&.7625&.7333&.6366&.3859&.0591&.0000\\ 99880&21&.9477&.9475&.9455&.9439&.9363&.9187&.8565&.6509&.2440&.0051\\ \end{array}

Aquí están los mínimos de $k$ valores $n=26$ (denotado por $f(n)$ como en Tad de la tabla), junto con los números y fracciones de solución de clases en un mínimo de $k$:

\begin{array}{c|c|c|c} n y f(n)&\#&\#\,/\,n_\text{c}\\\hline 1&1&1&.5000\\ 2&2&1&.3333\\ 3&3&2&.5000\\ 4&3&1&.1667\\ 5&4&3&.3750\\ 6&5&4&.2857\\ 7&6&12&.6000\\ 8&6&8&.2222\\ 9&6&6&.1000\\ 10&7&17&.1574\\ 11&7&4&.0213\\ 12&8&42&.1193\\ 13&8&6&.0095\\ 14&9&101&.0854\\ 15&9&22&.0100\\ 16&9&2&.0005\\ 17&10&34&.0044\\ 18&11&875&.0599\\ 19&11&152&.0055\\ 20&11&2&.0000\\ 21&12&508&.0051\\ 22&12&8&.0000\\ 23&13&2340&.0064\\ 24&13&36&.0001\\ 25&14&10688&.0080\\ 26&14&216&.0001 \end{array}

La solución de la clase de los condes de $2$ para $n=16$ y $n=20$ que vienen al final de una inusual triple de valores idénticos de $f(n)$ son importantes; aquí están los vectores solución:

$$ 0000101110111011\;,\\ 0000110111011101\;,\\ 00000101111011110111\;,\\ 00000111011110111101\;.\\ $$

Tenga en cuenta que en ambos casos las dos soluciones están relacionados por la inversión, que contienen ligeramente más largos de $0$s de $1$s, y las pistas de $1$s están separados por solo ceros.

Es tentador especular que la envolvente de $f(n)\gt n/2$ que contiene a $n=26$ mantendrá por más de $n$. Sin embargo, no creo que este sea el caso. Ya hay una ligera indicación de esto en los datos; las soluciones son poco a poco invadiendo el obligado. (Las tendencias en los números absolutos son relevantes aquí, no en las fracciones, ya que sólo se necesita una única solución). El hecho de que la tercera uniformemente al azar adivinado candidato resultó ser una solución para $k=26$, $n=50$, también apunta en esta dirección, ya que sugiere que la densidad de las soluciones, en ese punto es mucho más alto que el de $k=n/2-1 de$ menor de $n$ valores (donde es casi despreciable).

Por otra parte, consideraciones estadísticas sugieren que el comportamiento asintótico de $k$ ser $n\,/\log n$. Hay varios handwaving argumentos que podrían ser utilizados para apoyar esto, basado en la entropía o la colisión de probabilidades; los detalles pueden ser difíciles de conseguir, pero el panorama general es la misma en cada caso: El $k$ las mediciones de cada una eficiente del espacio de la orden de algún poder $n^\alpha$ a difundir a través de ($\sqrt$ n si tenemos en cuenta que ellos se distribuye binomial), por lo que nuestra capacidad de discernimiento crece con $n^{\alpha k}$, mientras que el número de posibilidades que debemos ser capaces de discernir crece con $2^n$; equiparación de los logaritmos de los rendimientos de $\alpha k\log n=n\log 2$ y por tanto $k\propto n\,/\log n$.

Tal $n\,/\log n$ el comportamiento parece coherente con los datos de hasta $n=26$, por lo que podemos obtener una estimación aproximada, por ejemplo, de $f(26)=14$:

$$f(50)\simeq\frac{50\log26}{26\log50}\,f(26)\simeq1.6\,f(26)\simeq22.4\;.$$

Que deja amplio espacio para la mejora. :-)

5voto

smitchell360 Puntos 36

El siguiente patrón funciona con $31$ pesajes: $${0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, \ 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, \ 0, 1, 1, 1}.$$ Esto supera los $35$-solución de pesaje encontrado antes. $${1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, \ 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, \ 0, 0, 0, 1}.$$ Vea los comentarios al final de este post.

Esto no es una respuesta completa, pero no cabe en un comentario. Definimos $f(n)$ a ser el más pequeño número de pesajes posible para $n$ monedas. Aquí está algo simple, pero no es particularmente eficiente código de Mathematica que calcula $f(n)$ para los pequeños $n$ por fuerza bruta: elija un representante de $x$ de una rotación de equivalencia de la clase de $n$largo $\{0,1\}$-vectores, construir una matriz de $k$ sucesivas rotaciones de $x$, que golpeó la matriz en contra de todo $\{0,1\}$-vectores, y ver si todos los $2^n$ resultados son distintos. Hay aproximadamente $2^n/n$ la rotación de clases, por lo que la complejidad de este es de alrededor de $4^n/n$.

(* check if vector x works when rotated k times *)
ok[x_, k_] := Block[{n = Length[x], m, v},
  m = RotateRight[x, #] & /@ Range[k];
  v = Tuples[{0, 1}, n];
  Unequal @@ (m.# & /@ v)];

(* compute a canonical representative for the rotation class of x *)
MinRotation[x_] := 
  First[Sort[RotateRight[x, #] & /@ Range[Length[x]]]];

f[n_] := f[n] = Block[{k, v},
  v = Select[Tuples[{0, 1}, n], # == MinRotation[#] &];
  For[k = 1, k <= n, k++,
  s = Select[v, ok[#, k] &];
  If[s != {}, Return[{k, First[s], Length[s]}]]]];

TableForm[Prepend[f[#], #] & /@ Range[12],
  TableDirections -> {Column, Row, Row},
  TableHeadings -> {None, {"n", "f(n)", "Example", "# of examples"}}]

$$ \begin{array}{cccc} \text{n} & \text{f(n)} & \text{Ejemplo} & \text{$\#$ de ejemplos} \\ 1 & 1 & (1) & 1 \\ 2 & 2 & (0 1) & 1 \\ 3 & 3 & (0 0 1) & 2 \\ 4 & 3 & (0 1 1 1) & 1 \\ 5 & 4 & (0 0 1 1 1) & 3 \\ 6 & 5 & (0 0 1 0 1 1) & 4 \\ 7 & 6 & (0 0 0 0 1 1 1 & 12 \\ 8 & 6 & (0 0 0 1 0 1 0 1) & 8 \\ 9 & 6 & (0 0 1 0 0 1 0 1 1) & 6 \\ 10 & 7 & (0 0 0 0 1 1 0 1 1 1) & 17 \\ 11 & 7 & (0 0 0 1 0 1 0 0 1 1 1) & 4 \\ 12 & 8 & (0 0 0 0 1 0 0 0 1 0 1 1) & 42 \\ \end{array}$$

Este rápidamente se convierte en inviable. Sin embargo, la comprobación de un determinado vector de costos "sólo" $2^n$ matriz se multiplica, por lo que podemos conseguir algunos límites superior por $f(n)$ adivinando buena vectores de $x$. Una razonable heurística es que el $k\times n$ matriz $A$ estamos construyendo debe tener $\det a A^T$ grande; el uso de que, encontramos por ejemplo que $f(15)\le 9$, ya que $$(0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1)$$ resulta trabajar con $9$ rotaciones.

(Añadido 7/3/2015:) Para la construcción de las soluciones para $k=31$ y $k=35$ pesajes de $n=50$ monedas, empecé mediante la ejecución de una subida de alrededor de $3$ veces, y recogió el patrón de dar la mayor $\det AA^T$. Como un primer cheque, miré a una reducción de la base para $\ker$ para comprobar que no tenía nada distinto de cero los vectores cuyas coordenadas fueron en más de $1$ en valor absoluto, y, a continuación, de forma exhaustiva facturado $\ker$ por ponerla en Hermite formulario por primera vez. Esto requiere la comprobación de alrededor de $(2/3)3^{n-k}$ vectores, que es fácil en un ordenador portátil. La ejecución por $k=31$ tomó cerca de $7 a$ horas $81$ veces tan largo como la ejecución por $k=35$.

Por cierto, sólo a partir de un examen visual de la reducción de las bases para los más pequeños valores de $k$, sospecho que $f(50)$ es de alrededor de $28$.

4voto

san Puntos 3820

Este es un acercamiento elemental, pero para números más grandes, es más computable que el total de la aproximación dada por Tad. Así que, probablemente, esto está lejos de ser óptimo: Si primero se pesan las monedas de $0$, $12$ y $25$ tarda 38 pesajes de acuerdo a la regla, así que usted puede decirle a todas las monedas de distancia.

Prueba: $w_i$ el pesaje de la $i$'th de la moneda, y $M_j$ el resultado de la $j$th de pesaje. Para saber todos los $M_j$ para $j=1,\dots,38$ y quiero saber $w_i$ por $i=0,\dots,49$. Tenemos $M_1=w_0+w_{12}+w_{25}$, $M_2=w_1+w_{13}+w_{25}$,...,$M_{38}=w_{37}+w_{49}+w_{12}$.

Ahora $M_1-M_{26}=w_{12}-w_{37}$, por lo tanto, si $w_{12}\ne w_{37}$, sabemos que el valor de ambos. Si son iguales, considerar el pesaje $M_{13}=w_{12}+w_{24}+w_{37}$. Si ambos son iguales a 10, luego $M_{13}=30$ o $M_{13}=40$ y si ambos son 20, $M_{13}=50$ o $M_{13}=60$. Usted también aprenderá el valor de $w_{24}$, incluso en el caso de que son diferentes.

Del mismo modo, a partir de $M_{2}-M_{27}$ y $M_{14}$ determinar $w_{13}$, $w_{25}$ y $w_{38}$ y de $M_{3}-M_{28}$ y $M_{15}$ determinar $w_{14}$, $w_{26}$ y $w_{39}$. Continuar con este razonamiento hasta determinar $w_{23}$, $w_{35}$ y $w_{48}$ ($M_{12}-M_{37}$ y $M_{24}$).

Así se han determinado $w_{12},\dots,w_{35}$ y $w_{37},\dots,w_{48}$. Ahora desde $M_{38}=w_{37}+w_{49}+w_{12}$ obtener $w_{49}$ y de $M_{25}=w_{24}+w_{36}+w_{49}$ obtener $w_{36}$.

Finalmente, a partir de $M_{1},\dots,M_{12}$ obtener $w_0,\dots,w_{11}$, ya que usted sabe ya dos pesos individuales en cada caso. Esto determina todos los pesos.

Tenga en cuenta que con esta base de partida, de pesaje, de 38 años es el menor número que usted necesita para determinar todos los pesos, ya que 37 pesajes no puede distinguir la moneda vector $V_1$ 10 para todas las monedas, excepto la moneda 36 con peso de 20, y la moneda vector $V_2$ con todas las monedas que pesan 10, excepto para las monedas 11 y 49 que pesan tanto 20.

Nota: Este método de primaria le da a los siguientes números:

Si $n=4k$, a partir de $(0,k,2k)$, $3k$ pesajes.

Si $n=3k$, a partir de $(0,1,k,2k)$, $2k$ pesajes si $k$ es impar, y $2k+1$ pesajes, si $k$ es par.

Si $n=4k+2$ necesitan $3k+2$ pesajes, a partir de $(0,k,2k+1)$.

Para los números primos el método no funciona. Otra cosa que tomar un divisor de $d<n/3$ de $n$ y $n-d$ pesajes.

0voto

Jon Mark Perry Puntos 4480

Para $n\gt3$ el menor número de pesajes es $n-1$. Todas las versiones de utilizar las combinaciones de $n-1$ monedas falta uno, y en la repetición de una ponderación de los restantes de la moneda.

Si analizamos el ejemplo original, podemos sumar el total de los $3$ pesajes. Esto nos da:

$2\times$(peso de la moneda de $0$+peso de la moneda de $1$+peso de la moneda de $2$) $+3\times$peso de la moneda de $3 dólares. (Yo he usado pesos de $1$ y $2$ en lugar de los $10$ y $20$.)

La suma de los primeros $3$ monedas es de $\{3,4,5,6\}$ y así puede tomar los valores de $\{6,8,10,12\}$, y el final de la moneda ofrece $3$ o $6$, dando al final un conjunto de posibles pesajes como $\{9,11,13,15,12,14,16,18\}$, u ordenados: $\{9,11,12,13,14,15,16,18\}$.

Así que nos tomamos el $3$ pesajes y sume los totales. Ahora ya tenemos un número par de los primeros $3$ monedas, podemos determinar el peso de la última moneda como par o impar. Este valor puede ser eliminado de las ecuaciones originales dando $3$ ecuaciones en $3$ incógnitas, que tiene una solución.

Por ejemplo, si nuestros tres pesajes dar $5,5,6$, los totales peso es de $16$. Si el final de la moneda pesaba $1$, tendríamos $2\times(c_0+c_1+c_2)=13$, lo cual es imposible. Deducimos que el final de la moneda debe sopesar $2$, por lo tanto tenemos:

$$ c_0+c_1=3$$ $$ c_0+c_2=3$$ $$ c_1+c_2=4$$

el que tiene la solución única de $c_0=1, c_1=2, c2=2$.

Para generalizar, podemos ver que un conjunto de soluciones viene de:

$$(n-2)\{n-1,\dots,2n-2\}+(n-1)\{1,2\}$$

Una posible pesaje es modular único de $(n-2)$, y así podemos determinar el peso de la última moneda dejando un pesaje total $0\mod(n-2) dólares, lo que deja $(n-1)$ de ecuaciones en $~(n-1)$ incógnitas, que tiene una única solución.

Por ejemplo, con $5$ monedas, tenemos la posible pesos $\{4,5,6,7,8\}$ de la $4$ monedas, y el pesaje total es de $3\times(c_0+c_1+c_2+c_3)+4\times c_4$. Así que el final de pesaje total será de $3k+1$ o $3k+2$, y nos dice el valor de $c_4$.

Debido a que el rango de la moneda wieghts es limitado, una solución con más monedas a menudo se puede lograr con menos pesajes de este. Las variables son el número de monedas que se utilizan en los pesajes, el número de pesajes y el peso de los lastres de las monedas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X