1X2 (ağırlıklı) oyunlarda bahis önermek için bir algoritma kodlamaya çalışıyorum.
Temel olarak, her oyunun bir takım maçları vardır (ev sahibi ve deplasman takımları):
1
: ev sahibi kazanırX
: çizmek2
: deplasman kazanır
Her maç ve sembol ( 1
ve X
ve 2
) için, bu sembolün doğru maç sonucu olma şansını / olasılığını temsil eden bir yüzde atayacağım. İşte yapıyı temsil eden bir dizi:
$game = array
(
'match #1' => array // stdev = 0.0471
(
'1' => 0.3, // 30% home wins
'X' => 0.4, // 40% draw
'2' => 0.3, // 30% away wins
),
'match #2' => array // stdev = 0.4714
(
'1' => 0.0, // 0% home wins
'X' => 0.0, // 0% draw
'2' => 1.0, // 100% away wins
),
'match #3' => array // stdev = 0.4027
(
'1' => 0.1, // 10% home wins
'X' => 0.0, // 0% draw
'2' => 0.9, // 90% away wins
),
);
Ayrıca her bahis için standart sapmayı da hesaplıyorum (yukarıdaki pasajda yorumlanmıştır); daha yüksek standart sapmalar daha yüksek bir kesinliği temsil ederken, en düşük standart sapmalara sahip maçlar daha yüksek bir belirsizlik seviyesine dönüşür ve ideal olarak mümkünse çift veya üçlü bir bahisle kaplanmalıdır.
Aşağıdaki sözde algoritma genel iş akışını tanımlamalıdır:
for each match, sorted by std. dev // "uncertain" matches first
if still can make triple bets
mark top 3 symbols of match // mark 3 (all) symbols
else if still can make double bets
mark top 2 symbols of match // mark 2 (highest) symbols
else if can only make single bets // always does
mark top symbol of match // mark 1 (highest) symbol
Şimdiye kadar iyi, ama algoritmaya ne kadar harcamak istediğimi söylemeliyim. Tek bir bahisin 1
hangi para biriminde olursa olsun, birden fazla bahis maliyetinin ne kadar olduğunu hesaplayan formülün diyelim :
2^double_bets * 3^triple_bets * cost_per_bet (= 1)
Açıkçası, algoritma bahis önerisine mümkün olduğu kadar çok para tahsis etmeye çalışmalıdır (aksi halde çok mantıklı olmaz) ve şimdi bu daha zorlaşıyor ...
Diyelim ki 4
PHP'de mümkün olan tüm katları listeleyerek maksimum ödeme yapmak istiyorum ( @ IDEOne ):
$cost = 1; // cost per single bet
$result = array();
$max_cost = 4; // maximum amount to bet
foreach (range(0, 3) as $double)
{
foreach (range(0, 3) as $triple)
{
if (($double + $triple) <= 3) // game only has 3 matches
{
$bets = pow(2, $double) * pow(3, $triple); // # of bets
$result[$bets] = array
(
'cost' => $bets * $cost, // total cost of this bet
'double' => $double,
'triple' => $triple,
);
if ($result[$bets]['cost'] > $max_cost)
{
unset($result[$bets]);
}
}
}
}
ksort($result);
Aşağıdaki çıktıyı verir:
Array
(
[1] => Array
(
[cost] => 1
[double] => 0
[triple] => 0
)
[2] => Array
(
[cost] => 2
[double] => 1
[triple] => 0
)
[3] => Array
(
[cost] => 3
[double] => 0
[triple] => 1
)
[4] => Array
(
[cost] => 4
[double] => 2
[triple] => 0
)
)
Sorun
Kullanılabilir maksimum para miktarını ( 4
) oynamayı seçersem , iki kez bahse girerim, eğer yukarıda tarif ettiğim sahte algoritmayı kullanırsam aşağıdaki bahis önerisiyle sonuçlanırım:
match #1
=>X1
match #2
=>2
match #3
=>12
Bu, maliyeti 3
ve daha fazla belirsizliği kapsayan üçlü bir bahisle karşılaştırıldığında en uygun görünmüyor :
match #1
=>X12
match #2
=>2
match #3
=>2
Yukarıdaki örnek, match #3
oranların olabileceğini düşünürseniz daha da önem kazanır :
$game['match #3'] = array // stdev = 0.4714
(
'1' => 0.0, // 0% home wins
'X' => 0.0, // 0% draw
'2' => 1.0, // 100% away wins
);
Bu durumda, iyi bir sebep olmadan bir çift harcıyordum.
Temel olarak, sadece seçebilir büyük (muhtemelen aptal) bahis değil zeki, en büyük bahis .
Birkaç gündür başımı duvara vuruyorum, bir tür epifani elde etmeyi umuyorum ama şimdiye kadar sadece iki yarım- [kötü-] çözüm üretebildim:
1) Bir "Çizgi" çizin
Temel olarak, belirli bir değerden daha düşük bir stdev ile eşleşmelerin üçlü, büyük bir daha yüksek bir stdev ile eşleşmelerin çift bahis ve geri kalan tekli bahis olacağını söyleyebilirim.
Bununla ilgili sorun, elbette, uygun belirli sınırları bulmaktır - ve "en akıllı" bahis için mükemmel değerleri bulsam bile, önerilen bahsi oynamak için yeterli param var mı yoksa Daha büyük (aynı zamanda akıllı) bir bahis yapabilirdim ...
2) Bruteforce
Bu soruyu yazarken bu fikri buldum ve tanımladığım bağlamda bunun tam anlamıyla anlam ifade etmeyeceğini biliyorum ama bence biraz farklı metrikler kullanarak işe yarayabilir. Temelde, programım (dan oynayabilir para olası her miktar için bahisler (üçlü ve çift bahis #) önermek yapabilir 1
için 4
(bir şey yukarıda açıklanan sözde algoritma uygulanarak ve küresel Sıra değerini hesaplayarak bizim örneğimizde), gibi % of symbols * match stdev
- biliyorum, mantıklı değil).
En yüksek dereceye sahip bahis (belirsizliği kapsayan) önerilen bahis olacaktır. Bu yaklaşımla ilgili sorun (henüz bir anlam ifade etmemesinin yanı sıra), programımın çalışacağı oyunların 3 maçla sınırlı olmaması ve bu maçlar için çift ve üçlü bahis kombinasyonlarının sayısı önemli ölçüde daha yüksek.
Zarif bir çözüm varmış gibi hissediyorum, ama anlayamıyorum ...
Bu sorunu çözen herhangi bir yardım çok takdir ediliyor, teşekkürler.
Sorunumla ilgili bazı karışıklıklar var gibi görünüyor, bu soruya ve yorumlara zaten değindim, ancak yanlış yorum hala en azından bazıları için geçerli görünüyor.
Belirli bir oyun için kaç tane üçlü, çift ve tek bahis oynayacağımı bilmeliyim (tüm maçlar). Her maça ayrı ayrı bakarak hangi sembolleri oynamak istediğimi zaten biliyorum.