Esse é uma breve análise sobre a carta Venture.
Tradução livre...: Tesouro \$1. Quando você joga isso, revele as cartas do seu deck até que você revele um treasure. Discarte as outras cartas. Jogue aquele tesouro.
Como descrito, Venture fornece \$1 + o valor do próximo tesouro a ser revelado. Inicialmente com Coopers, Venture fornece basicamente \$2. A questão inicial que levanto é, qual o valor que 4 Ventures fornecem? Num jogo de Big Money, qual a proporção ideal de Golds e Ventures que um deck poderia ter?
Bom, minha solução proposta é considerar as seguintes simplificações:
1) O valor fornecido por esse Treasure é obviamente aleatório. Iremos investigar o caso do valor médio.
2) Iremos desprezar o fato de não haver um "próximo tesouro".
No caso de apenas um Venture, o valor médio fornecido por ele é \$1 + o valor médio dos Treasures do Deck. Para os demais Ventures podemos calcular com a seguinte recursão.
Seja $V$ é a função que mapeia o índice com o valor do Venture, $M$ a função de valor médio das cartas pelo número de Ventures.
Por exemplo, considere $G$, a quantidade de Golds e $C$ a quantidade de Coppers no deck.
\begin{equation*}
M(0) = \frac{3G + C}{G + C}
\end{equation*}
O próximo venture fornecerá (em média)
\begin{equation*}
V(1) = 1 + M(0)
\end{equation*}
... o que mudará o valor médio dos Treasures do Deck para...
\begin{equation*}
M(1) = \frac{(V(1) + M(0).(G+C)}{G+C+1}
\end{equation*}
De forma geral...
\begin{equation*}
M(n) = \frac{V(n) + M(n-1).(G+C+n-1)}{G+C+n}
\end{equation*}
Não é bacana resolver essa recursão. E dado que a série é discreta, aqui um programinha que simula o problema. O programa a seguir imprime uma matriz M(g,n) do valor médio dos Tresures do Deck, onde g é a quantidade de Golds no deck - 1 e n a quantidade de ventures -1 em função de c (quantidade de coppers).
Cenário com 7 Coppers
Cenário com 3 Coppers
Cenário com 1 Copper
Tradução livre...: Tesouro \$1. Quando você joga isso, revele as cartas do seu deck até que você revele um treasure. Discarte as outras cartas. Jogue aquele tesouro.
Como descrito, Venture fornece \$1 + o valor do próximo tesouro a ser revelado. Inicialmente com Coopers, Venture fornece basicamente \$2. A questão inicial que levanto é, qual o valor que 4 Ventures fornecem? Num jogo de Big Money, qual a proporção ideal de Golds e Ventures que um deck poderia ter?
Bom, minha solução proposta é considerar as seguintes simplificações:
1) O valor fornecido por esse Treasure é obviamente aleatório. Iremos investigar o caso do valor médio.
2) Iremos desprezar o fato de não haver um "próximo tesouro".
No caso de apenas um Venture, o valor médio fornecido por ele é \$1 + o valor médio dos Treasures do Deck. Para os demais Ventures podemos calcular com a seguinte recursão.
Seja $V$ é a função que mapeia o índice com o valor do Venture, $M$ a função de valor médio das cartas pelo número de Ventures.
Por exemplo, considere $G$, a quantidade de Golds e $C$ a quantidade de Coppers no deck.
\begin{equation*}
M(0) = \frac{3G + C}{G + C}
\end{equation*}
O próximo venture fornecerá (em média)
\begin{equation*}
V(1) = 1 + M(0)
\end{equation*}
... o que mudará o valor médio dos Treasures do Deck para...
\begin{equation*}
M(1) = \frac{(V(1) + M(0).(G+C)}{G+C+1}
\end{equation*}
De forma geral...
\begin{equation*}
M(n) = \frac{V(n) + M(n-1).(G+C+n-1)}{G+C+n}
\end{equation*}
Não é bacana resolver essa recursão. E dado que a série é discreta, aqui um programinha que simula o problema. O programa a seguir imprime uma matriz M(g,n) do valor médio dos Tresures do Deck, onde g é a quantidade de Golds no deck - 1 e n a quantidade de ventures -1 em função de c (quantidade de coppers).
require 'matrix'
args = ARGV.map{|arg| Integer(arg)}
class Venture
def initialize(n=100,g=100, c=7)
@c = c
@venture = Array.new(n) { Array.new(g) {-1}}
end
def print(n, g)
n.times{ |i|
g.times { |j|
memoized_value(i, j)
}
}
n.times{ |i|
line = ""
g.times { |j|
line << "#{1.0 * @venture[i][j]/ (i + j + @c)} "
}
puts line
}
end
def memoized_value(n, g)
@venture[n][g] = value(n,g) if @venture[n][g] == -1
@venture[n][g]
end
def value(n,g)
if (n == 0)
3*g + @c
else
1 + 1.0 * value(n-1, g)*(n+g+@c)/(n+g+@c -1)
end
end
end
Venture.new(*args).print(args[0],args[1])
Os resultados obtidos obviamente variam com a quantidade de Coppers no Deck. Quanto maior a média, mais eficiente os Ventures serão em relação aos Golds.Cenário com 7 Coppers
Cenário com 3 Coppers
Cenário com 1 Copper



Comentários