Estoy asumiendo que todos los dados (contando la moneda como un dado de 2 caras) se tiran en paralelo, y no se permite volver a tirar. Utilizaré la notación estándar D $n$ para un $n$ -su cara (D2 para la moneda).
Como tenemos que simular un D8, que es una potencia de 2, necesitamos multiplicar distribuciones uniformes con potencias de 2; podemos considerarlas como bits aleatorios.
-
El D2 entrega un bit aleatorio.
-
Cada D4 entrega dos bits aleatorios.
-
El D10 entrega sólo un bit aleatorio, ya que 2 es la mayor potencia de 2 que divide a 10. Dado que no se permiten las repeticiones de tirada, el factor 5 es inútil para generar distribuciones uniformes para potencias de 2.
Así que tenemos 6 bits en total, de los cuales podemos seleccionar 3 arbitrarios para generar una sola tirada de D8.
Por ejemplo, puedes utilizar un D4 (2 bits) y el D2 (1 bit) para obtener 3 bits (esta es la solución que dieron otras respuestas).
También se pueden tomar los dos D4, y utilizar sólo un bit para uno de ellos, por ejemplo sumando 4 al resultado del segundo D4 si el primer D4 da un resultado impar.
O podría seleccionar 3 dados arbitrarios, y tomar su valor de bits como 0 si el resultado de la tirada es par y 1 si el resultado es impar, y luego a partir de los tres bits formar $4a+2b+c+1$ donde $a$ , $b$ y $c$ son los bits derivados de los tres dados.
De hecho, ¡podrías utilizar los cuatro dados dados para simular que lanzas dos D8 en paralelo!
2 votos
Hay muchas respuestas posibles. Si la tuya no estaba en la lista corta elaborada por la persona que plantea el problema, eso no significa que tu solución sea incorrecta. Además, el singular de "dado" es "die"; si la persona que hizo la pregunta cometió este error, eso también debería hacerte reflexionar.
0 votos
Tengo la impresión de que mi forma de pensar era tan diferente de lo que el entrevistador esperaba, que supuse que había entendido la pregunta totalmente mal. Además, tanto él como yo no éramos hablantes nativos de inglés, así que ni siquiera pensé en ese error gramatical :)
0 votos
¿Por qué no compartes TU solución y te decimos si tienes razón?
1 votos
Muy relacionado: ¿Cómo generar un número aleatorio entre 1 y 10 con un dado de seis caras? . La mayoría de las soluciones que hay pueden adaptarse a esta situación con un mínimo de dificultad.
10 votos
Su solución no sustituye a un dado de 8 caras, porque produce algunos valores (como el 4) con mucha más frecuencia que otros (como el 1).
23 votos
Recuerde que no sólo debe generar números aleatorios entre 1 y 8, sino que también deben estar distribuidos uniformemente.
50 votos
¿No es suficiente con lanzar la moneda 3 veces?
1 votos
No estoy seguro de que puedas usar tu dado/moneda más de una vez. ¿Por qué la pregunta tendría entonces 2 dados de 4 caras?
6 votos
Por ejemplo, acabo de hacer que el ordenador intente su procedimiento 10.000 veces, y ha producido los siguientes resultados: $$\begin{array}{rr} 1 & 165\\ 2 & 763\\ 3 & 1510\\ 4 & 1962\\ 5 & 2089\\ 6 & 1887\\ 7 & 1187\\ 8 & 400\\ \end{array}$$
42 votos
Lanzar un dado de 4 caras, y luego sumar 4 si sale cara la moneda, simula con exactitud un dado de 8 caras.
0 votos
Así que la mía estaba efectivamente mal. ¿se te ocurre alguna solución correcta?
1 votos
@VolkanUlukut Supongo que no está obligado a utilizar todos los dados.
0 votos
Sí, no lo estoy, me confundí ahí supongo, pero usar un dado varias veces también está prohibido. tu respuesta funciona bien sin embargo.
0 votos
@VolkanUlukut Además, su procedimiento a veces produce el número 9. (Si tiras $10 + 4 + 4 - 1$ obtienes 17; divide por 2 y redondea hacia arriba y tienes 9.
4 votos
@vadim123 'Además, el singular de "dados" es "die"; si la persona que ha hecho la pregunta ha cometido este error, eso también debería dar que pensar.' Por favor. Es perfectamente posible que alguien que no sepa que "dado" es un plural calcule probabilidades.
2 votos
@vadim123: Según Wikipedia tanto "die" como "dice" son formas singulares posibles.
29 votos
No estoy seguro de si esto está permitido, pero yo simplemente tiraría el dado de 10 caras, y volvería a tirar si cayera en un valor superior a 8.
2 votos
@celtschk, ver aquí . Aunque algunas personas utilizan "dados" en singular, sigue siendo poco común y no se considera correcto. Con el tiempo, el lenguaje puede cambiar, por supuesto.
3 votos
@vadim123: ¿Por qué debo suponer que el sitio que enlazaste tiene autoridad? Los diccionarios Oxford Ciertamente no digo que el uso singular sea infrecuente o incorrecto. Todo lo contrario (el énfasis es mío): "Históricamente, dado es el plural de dado, pero en inglés moderno estándar los dados son ambos el singular y el plural: lanzar los dados podría significar una referencia a uno o más dados"
1 votos
@celtschk, la wikipedia cita este mismo "Oxford Living Dictionary" que tú has hecho, que es sólo un diccionario. Sin embargo Cambridge , Herencia americana , GNU , diccionario.com todos dan dados en plural. Diccionario Merriam-Webster para estudiantes está de acuerdo contigo. Así que tal vez la lengua esté en proceso de cambio, pero no estoy de acuerdo con el inglés estándar actual.
0 votos
@vadim123: Veo un patrón aquí: Los diccionarios británicos ponen "dice" en singular, los americanos no. Así que tal vez sea una cuestión de inglés británico frente a inglés americano. En cualquier caso, es claramente erróneo calificar un "dado" en singular, en particular en un sitio web internacional.
0 votos
Según mis cuentas, hay $\frac{320!}{40!^8}\simeq 10^{281}$ formas de hacerlo, que son bastantes.
0 votos
El problema planteado puede resolverse de muchas maneras, todas ellas produciendo una distribución uniforme. Tirar d10, volver a tirar los 9 y los 10. Lanza una moneda 3 veces, intégrala como binaria 000b - 111b, tira 2d4 e interpreta una como binaria, como 00(base4) hasta 13(base4), usa la moneda o d10/5 en lugar de uno de los d4, reetiqueta los d4 y d10 como quieras, pero lo más divertido ¡cámbialos por un d8!
0 votos
Aún más divertido: escribe un {bash,ruby,python,perl} script para generar un número aleatorio entre 1..8, y lanza los dados obsoletos :-). O descarga una aplicación para lanzar dados en tu teléfono. O llama a un amigo que tenga un d8. O busca un sitio web de lanzamiento de dados, por ejemplo wizards.com/dnd/dice/dice.htm , rolz.org
1 votos
Tira d4,d10, lee como 00..39(base10) modulo 8, embolsa la moneda.
3 votos
Ir a la tienda. Gasta una moneda en un dado de 8 caras. Dedica tus habilidades matemáticas a ganar el juego. :)
0 votos
De forma más general, se necesitan 3 bits de información y deben estar distribuidos uniformemente. 1d4 + isEven( 1d2 || 1d4 | 1d10 ) ? 4 : 0 || 1d2 + isEven( 1d4 ) ? 2 : 0 + isEven( 1d4 || 1d10 ) ? 4 : 0
0 votos
@BradC Iba a decir lo mismo, pero requeriría un número potencialmente infinito de lanzamientos. La solución con tres lanzamientos de moneda tiene un límite superior garantizado en el número de lanzamientos, no sólo una expectativa.