मैं 1X2 (भारित) खेलों में दांव का सुझाव देने के लिए एक एल्गोरिथ्म कोड करने की कोशिश कर रहा हूं।
मूल रूप से, प्रत्येक खेल में मैचों का एक सेट होता है (घर से दूर की टीमें):
1
: घर जीतता हैX
: ड्रा2
: जीत दूर
प्रत्येक मैच और प्रतीक (के लिए 1
, X
और 2
), मैं एक प्रतिशत है कि कि प्रतीक सही मिलान परिणाम जा रहा है की संभावना / संभावना का प्रतिनिधित्व करता है आवंटित करेगा। यहाँ संरचना का प्रतिनिधित्व करने वाला एक सरणी है:
$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
),
);
मैं प्रत्येक शर्त के लिए मानक विचलन की गणना भी करता हूं (उपरोक्त स्निपेट में टिप्पणी की गई है); उच्च मानक विचलन एक उच्च निश्चितता का प्रतिनिधित्व करते हैं, जबकि सबसे कम मानक विचलन वाले मैच अनिश्चितता के उच्च स्तर पर अनुवाद करते हैं, और, आदर्श रूप से, यदि संभव हो तो एक डबल या ट्रिपल शर्त के साथ कवर किया जाना चाहिए।
निम्नलिखित छद्म एल्गोरिथ्म में समग्र वर्कफ़्लो का वर्णन करना चाहिए:
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
अब तक बहुत अच्छा है, लेकिन मुझे एल्गोरिथ्म को बताने की जरूरत है कि मैं कितना खर्च करना चाहता हूं। चलो 1
जो भी मुद्रा में एक शर्त शर्त कहते हैं , एक से अधिक शर्त लागत की गणना करने का सूत्र है:
2^double_bets * 3^triple_bets * cost_per_bet (= 1)
जाहिर है, एल्गोरिथ्म को शर्त सुझाव में जितना संभव हो सके उतना पैसा आवंटित करने की कोशिश करनी चाहिए (इससे बहुत मतलब नहीं होगा), और अब यह कहाँ मुश्किल हो जाता है ...
आइए बताते हैं कि मैं अधिकतम भुगतान करना चाहता हूं 4
, PHP में सभी संभावित गुणकों की सूची बनाना ( @ 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);
निम्नलिखित उत्पादन पैदावार:
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
)
)
समस्या
यदि मैं उपलब्ध अधिकतम राशि खेलने के लिए चुनता हूं ( 4
) तो मुझे दो डबल्स के साथ शर्त लगाना होगा, अगर मैं ऊपर वर्णित छद्म-एल्गोरिथ्म का उपयोग करता हूं तो मैं निम्नलिखित शर्त सुझाव के साथ समाप्त करूंगा:
match #1
=>X1
match #2
=>2
match #3
=>12
जब ट्रिपल शर्त की तुलना में उप-इष्टतम लगता है जो लागत 3
और अधिक अनिश्चितता को कवर करता है:
match #1
=>X12
match #2
=>2
match #3
=>2
उपरोक्त उदाहरण और भी अधिक प्रासंगिकता प्राप्त करता है यदि आप समझते हैं कि match #3
अंतर हो सकता है:
$game['match #3'] = array // stdev = 0.4714
(
'1' => 0.0, // 0% home wins
'X' => 0.0, // 0% draw
'2' => 1.0, // 100% away wins
);
इस मामले में मैं बिना किसी अच्छे कारण के एक डबल बर्बाद कर रहा हूं।
मूल रूप से, मैं केवल सबसे बड़ी (संभवतः बेवकूफ) शर्त चुन सकता हूं और सबसे चतुर, सबसे बड़ी शर्त नहीं ।
मैं कुछ दिनों के लिए दीवार के खिलाफ अपना सिर पीट रहा हूं, मुझे उम्मीद है कि मुझे किसी प्रकार की एपिफेनी मिल जाएगी, लेकिन अभी तक मैं केवल दो आधे के साथ ही आ पाया हूं- [बुरा-] समाधान:
1) एक "रेखा" बनाएं
मूल रूप से मैं यह कहूंगा कि एक विशिष्ट मूल्य से कम एक स्टदेव के साथ मैच ट्रिपल होगा, एक स्टदेव के साथ मैच एक बड़ा उच्चतर डबल दांव और बाकी एकल दांव होंगे।
इसके साथ समस्या, निश्चित रूप से, उपयुक्त विशिष्ट सीमाओं का पता लगा रही है - और यहां तक कि अगर मुझे "सबसे चतुर" शर्त के लिए सही मान मिलें, तो भी मुझे नहीं पता कि मेरे पास सुझाए गए दांव को खेलने के लिए पर्याप्त पैसा है या नहीं मैं एक भी बड़ा (भी स्मार्ट) शर्त लगा सकता है ...
2) ब्रूटफोर्स
मैं इस प्रश्न को लिखते समय इस विचार के साथ आया था और मुझे पता है कि यह मेरे द्वारा बताए गए संदर्भ में सही अर्थ नहीं करेगा, लेकिन मुझे लगता है कि मैं इसे कुछ अलग मैट्रिक्स का उपयोग करके काम कर सकता था। मूल रूप से, मैं इस कार्यक्रम मैं (से निभा सकता है पैसे की हर संभव राशि के लिए दांव (ट्रिपल और डबल दांव की #) का सुझाव कर सकते हैं 1
करने के लिए 4
(कुछ मेरी उदाहरण में), छद्म एल्गोरिथ्म मैं ऊपर वर्णित लागू करने और एक वैश्विक रैंकिंग मूल्य की गणना जैसे % of symbols * match stdev
- मुझे पता है, इसका कोई मतलब नहीं है)।
उच्चतम रैंकिंग (अनिश्चितता को कवर) के साथ शर्त सुझाई गई शर्त होगी। इस दृष्टिकोण के साथ समस्या (इस तथ्य के अलावा कि यह अभी तक कोई मतलब नहीं है) यह है कि जिन खेलों के साथ मेरा कार्यक्रम काम करने जा रहा है, वे 3 मैचों तक सीमित नहीं हैं और उन मैचों के लिए डबल और ट्रिपल शर्त संयोजनों की संख्या होगी काफी अधिक है।
मुझे लगता है कि एक सुंदर समाधान है, लेकिन मैं इसे समझ नहीं सकता ...
इस समस्या को क्रैक करने में किसी भी मदद की बहुत सराहना की जाती है, धन्यवाद।
मेरी समस्या के बारे में कुछ भ्रम प्रतीत हो रहा है, मैंने पहले ही इस प्रश्न में और टिप्पणियों में भी इसे संबोधित किया है, लेकिन गलत व्याख्या अभी भी प्रबल है, कम से कम कुछ के लिए।
मुझे यह जानने की जरूरत है कि मैं एक विशिष्ट गेम (सभी मैचों) के लिए कितने ट्रिपल, डबल और सिंगल दांव खेलूंगा । मैं पहले से ही जानता हूं कि मैं प्रत्येक मैच को व्यक्तिगत रूप से देखकर क्या प्रतीक खेलना चाहता हूं।