पासा छोड़ने के लिए सूत्र (गैर-क्रूर बल)


14

सबसे पहले मुझे यकीन नहीं है कि यह सवाल कहां पोस्ट किया जाना चाहिए। मैं यह पूछ रहा हूं कि क्या कोई सांख्यिकी समस्या एनपी-पूर्ण है और यदि इसे प्रोग्रामेटिक रूप से हल करने के लिए नहीं है। मैं इसे यहाँ पोस्ट कर रहा हूँ क्योंकि सांख्यिकी समस्या केंद्र बिंदु है।

मैं एक समस्या को हल करने के लिए एक बेहतर सूत्र खोजने की कोशिश कर रहा हूं। समस्या यह है: अगर मेरे पास 4d6 (4 साधारण 6 पक्षीय पासा) हैं और उन सभी को एक साथ रोल करते हैं, तो सबसे कम संख्या (जिसे "ड्रॉपिंग" कहा जाता है) के साथ एक डाई को हटा दें, फिर शेष 3 को योग करें, प्रत्येक संभावित परिणाम की संभावना क्या है ? मुझे पता है इसका उत्तर यह है:

Sum (Frequency): Probability
3   (1):         0.0007716049
4   (4):         0.0030864198
5   (10):        0.0077160494
6   (21):        0.0162037037
7   (38):        0.0293209877
8   (62):        0.0478395062
9   (91):        0.0702160494
10  (122):       0.0941358025
11  (148):       0.1141975309
12  (167):       0.1288580247
13  (172):       0.1327160494
14  (160):       0.1234567901
15  (131):       0.1010802469
16  (94):        0.0725308642
17  (54):        0.0416666667
18  (21):        0.0162037037

औसत 12.24 है और मानक विचलन 2.847 है।

मुझे उपर्युक्त उत्तर पाशविक बल से मिला और यह नहीं पता कि इसके लिए कोई फार्मूला है या नहीं। मुझे संदेह है कि यह समस्या एनपी-कम्प्लीट है और इसलिए इसे केवल ब्रूट फोर्स द्वारा हल किया जा सकता है। यह संभव हो सकता है कि 3 डी 6 (3 सामान्य 6 पक्षीय पासा) की सभी संभावनाएं प्राप्त करें और फिर उनमें से प्रत्येक को ऊपर की तरफ तिरछा करें। यह पाशविक बल से अधिक तेज़ होगा क्योंकि मेरे पास एक तीव्र सूत्र है जब सभी पासे रखे जाते हैं।

मैंने कॉलेज में सभी पासा रखने के फार्मूले को क्रमबद्ध किया। मैंने इसके बारे में अपने सांख्यिकी प्राध्यापक से पूछा था और उन्हें यह पृष्ठ मिला , जिसे उन्होंने मुझे समझाया था। इस सूत्र और पाशविक बल के बीच एक बड़ा प्रदर्शन अंतर है: 50d6 में 20 सेकंड लगे लेकिन 40 सेकंड के बाद 8d6 ड्रॉप सबसे कम क्रैश (मेमोरी से बाहर क्रोम रन)।

क्या यह समस्या एनपी-पूर्ण है? यदि हाँ, तो कृपया कोई प्रमाण प्रदान करें, यदि कोई कृपया इसे हल करने के लिए एक नॉन-ब्रूट फोर्स फॉर्मूला प्रदान न करें।

ध्यान दें कि मुझे NP-Complete के बारे में अधिक जानकारी नहीं है इसलिए मैं NP, NP-Hard या कुछ और के बारे में सोच सकता हूं। एनपी-पूर्णता के लिए प्रमाण मेरे लिए एकमात्र कारण है कि मैं इसके लिए पूछता हूं कि लोगों को अनुमान लगाने से रोकना है। और मेरे साथ नंगे कृपया क्योंकि मुझे इस पर काम करते हुए एक लंबा समय हो गया है: मुझे आंकड़े याद नहीं हैं और साथ ही मुझे इसे हल करने की आवश्यकता हो सकती है।

आदर्श रूप से मैं Y पक्षों के साथ X पासा के X नंबर के लिए एक अधिक सामान्य सूत्र की तलाश कर रहा हूं जब उनमें से N को गिरा दिया जाता है, लेकिन कुछ और सरल से शुरू कर रहा हूं।

संपादित करें:

मैं आउटपुट आवृत्तियों के सूत्र को भी पसंद करूंगा लेकिन यह केवल आउटपुट संभावनाओं के लिए स्वीकार्य है।

उन लोगों के लिए, जिन्होंने मेरे गीथहब पर जावास्क्रिप्ट में व्हॉबर के जवाब को क्रमादेशित किया है (इसमें केवल परीक्षण वास्तव में परिभाषित कार्यों का उपयोग करते हैं)।


1
यह एक दिलचस्प सवाल है। मुझे लगता है कि यह यहाँ विषय पर होना चाहिए। आपके विचार करने के लिए धन्यवाद।
गूँग - मोनिका

1
हालांकि सेटिंग दिलचस्प है, फिर भी आपने एक जवाबदेह सवाल नहीं पूछा है: एनपी-पूर्णता का विचार समस्याओं का एक वर्ग होने पर निर्भर करता है, जबकि आपने केवल एक का वर्णन किया है। वास्तव में आप इसे कैसे सामान्य बनाना चाहते हैं? यद्यपि आप संकेत देते हैं कि पासा की संख्या भिन्न हो सकती है, विभिन्न अतिरिक्त विकल्प संभव हैं और वे अलग-अलग उत्तर दे सकते हैं: आप चेहरे की संख्या, चेहरे पर मान, पासा की संख्या और गिराए गए पासा की संख्या को बदल सकते हैं, सभी उनके बीच विभिन्न संबंधों के साथ विभिन्न तरीकों से।
whuber

1
@ जब वह किसी भी जटिलता सिद्धांत को नहीं जानता है, लेकिन मुझे लगता है कि यह स्पष्ट है कि वह पासा की संख्या को बदलकर उत्पन्न समस्याओं के परिवार के बाद पूछ रहा है। मुझे भी लगता है कि मेरे पास इसके लिए एक कुशल एल्गोरिदम है।
एंडी जोन्स

2
@ और मैं अंत में देखती हूं कि वह "वाई पक्षों के साथ एक्स संख्या के लिए एक अधिक सामान्य सूत्र के लिए पूछ रहा है जब उनमें से एन को गिरा दिया जाता है"।
whuber

@ पहर हह! स्पष्ट रूप से उतना स्पष्ट नहीं है जितना मैंने सोचा था। माफ करना मेरा बुरा।
एंडी जोन्स

जवाबों:


5

समाधान

आज्ञा देना के परिणामों को समान अवसर देने वाले प्रत्येक पासे हैं । चलो मूल्यों की न्यूनतम हो जब सभी पासा स्वतंत्र रूप से फेंक दिया जाता है।1 , 2 , , d = 6 K nn=41,2,,d=6Kn

पर सशर्त सभी मानों के योग के वितरण पर विचार करें । को इस राशि का होने दें । किसी भी मान को बनाने के तरीकों की संख्या के लिए जनरेटिंग फ़ंक्शन , यह देखते हुए कि न्यूनतम कम से कम , हैK X X knKXXk

(1)f(n,d,k)(x)=xk+xk+1++xd=xk1xdk+11x.

चूंकि पासा स्वतंत्र हैं, मूल्यों को बनाने के तरीकों की संख्या के लिए जनरेटिंग फ़ंक्शन जहां सभी पासा या उससे अधिक के मान दिखाते हैंएन केXnk

(2)f(n,d,k)(x)n=xkn(1xdk+11x)n.

इस जनरेटिंग फ़ंक्शन में उन घटनाओं के लिए शब्द शामिल हैं जहां से अधिक है , इसलिए हमें उन्हें बंद करने की आवश्यकता है। इसलिए दिए गए मान बनाने के तरीकों की संख्या के लिए जनरेटिंग फंक्शन हैके एक्स के = केKkXK=k

(3)f(n,d,k)(x)nf(n,d,k+1)(x)n.

यह देखते हुए कि उच्चतम मानों का योग सभी मानों का योग है जो कि बराबर सबसे छोटा है । इसलिए जनरेटिंग फंक्शन को द्वारा विभाजित करने की आवश्यकता है । यह पासा के किसी भी संयोजन के सामान्य अवसर से गुणा करने पर प्रायिकता उत्पन्न करने वाला कार्य बन जाता है, :एक्स - के के ( 1 / डी ) एनn1XKk(1/d)n

(4)dnk=1dxk(f(n,d,k)(x)nf(n,d,k+1)(x)n).

चूंकि सभी बहुपद उत्पादों और शक्तियों की गणना संचालन में की जा सकती है (वे विक्षेप हैं और इसलिए इन्हें असतत फास्ट फूरियर ट्रांसफॉर्म के साथ अंजाम दिया जा सकता है), कुल कम्प्यूटेशनल प्रयास । विशेष रूप से, यह एक बहुपद समय एल्गोरिथ्म है।( केO(nlogn)O(knlogn)


उदाहरण

आइए और के साथ प्रश्न में उदाहरण के माध्यम से काम करें ।n=4d=6

पर सशर्त के PGF के लिए फॉर्मूला देता है(1)XKk

f(4,6,1)(x)=x+x2+x3+x4+x5+x6f(4,6,2)(x)=x2+x3+x4+x5+x6f(4,6,5)(x)=x5+x6f(4,6,6)(x)=x6f(4,6,7)(x)=0.

उन्हें स्थापना सूत्र में के रूप में शक्ति का उत्पादनn=4(2)

f(4,6,1)(x)4=x4+4x5+10x6++4x23+x24f(4,6,2)(x)4=x8+4x9+10x10++4x23+x24f(4,6,5)(x)4=x20+4x21+6x22+4x23+x24f(4,6,6)(x)4=x24f(4,6,7)(x)4=0

सूत्र में उनके क्रमिक अंतर हैं(3)

f(4,6,1)(x)4f(4,6,2)(x)4=x4+4x5+10x6++12x18+4x19f(4,6,2)(x)4f(4,6,3)(x)4=x8+4x9+10x10++4x20f(4,6,5)(x)4f(4,6,6)(x)4=x20+4x21+6x22+4x23f(4,6,6)(x)4f(4,6,7)(x)4=x24.

सूत्र में परिणामी योग है(4)

64(x3+4x4+10x5+21x6+38x7+62x8+91x9+122x10+148x11+167x12+172x13+160x14+131x15+94x16+54x17+21x18).

उदाहरण के लिए, मौका है कि शीर्ष तीन पासा राशि बराबर का गुणांक है14x14

64×160=10/81=0.123456790123456.

यह प्रश्न में उद्धृत संभावनाओं के साथ सही समझौता है।

वैसे, माध्य (इस परिणाम से परिकलित) और मानक विचलन ।15869/129612.24459876513612487/16796162.8468444

बजाय पासा के लिए एक समान (अडॉप्टिमाइज्ड) गणना एक आधे से भी कम समय लेती है, इस विवाद का समर्थन करते हुए कि यह कम्प्यूटेशनल रूप से मांगने वाले एल्गोरिथम नहीं है। यहाँ वितरण के मुख्य भाग की एक साजिश है:n=400n=4

आकृति

चूंकि न्यूनतम बराबर होने की अत्यधिक संभावना है और योग एक सामान्य वितरण के करीब होगा (जिसका मतलब और मानक विचलन लगभग ) औसत करीब होना चाहिए और मानक विचलन करीब होना चाहिए । यह पूरी तरह से साजिश का वर्णन करता है, यह दर्शाता है कि यह सही होने की संभावना है। वास्तव में, सटीक गणना लगभग से अधिक और मानक विचलन लगभग कम है।K1X(400×7/2,400×35/12)140034.156514001=139934.162.13×103213991.24×1031400×35/12


1
आपका उत्तर तेज़ है और सही है इसलिए मैंने इसे उत्तर के रूप में चिह्नित किया है। एक संपादन में भी मैंने कहा कि यदि संभव हो तो आवृत्तियों का होना अच्छा होगा। उसके लिए आपको अपना उत्तर संपादित करने की आवश्यकता नहीं है क्योंकि मैं देख सकता हूँ कि 6^-4गुणक को आवृत्ति से प्रायिकता में बदलने के लिए उपयोग किया जाता है।
बजे स्काईस्पीरल 7

6

संपादित करें: @SkySpiral को काम करने के लिए निम्न सूत्र प्राप्त करने में परेशानी हुई है। वर्तमान में मेरे पास यह जानने के लिए समय नहीं है कि समस्या क्या है, इसलिए यदि आप इसे पढ़ रहे हैं तो यह गलत है कि यह गलत है।


मैं पासा, भुजाओं और बूंदों की बदलती संख्या के साथ सामान्य समस्या के बारे में निश्चित नहीं हूं, लेकिन मुझे लगता है कि मैं ड्रॉप -1 मामले के लिए एक कुशल एल्गोरिथ्म देख सकता हूं। क्वालिफायर यह है कि मुझे पूरी तरह से यकीन नहीं है कि यह सही है, लेकिन अभी मुझे कोई खामी नहीं दिख रही है।

चलो किसी भी पासा को नहीं छोड़ते हैं। मान लीजिए कि वें डाई का प्रतिनिधित्व करता है , और मान लीजिए कि पासा का योग दर्शाता है। फिरXnnYnn

p(Yn=a)=kp(Yn1=ak)p(Xn=k)

अब मान लीजिए dice का योग है जब एक मर जाता है। फिरZnn

p(Zn=a)=p(nth die is the smallest)p(Yn1=a)+p(nth die is not the smallest)kp(Zn1=ak)p(Xn=k)

यदि हम को के न्यूनतम के वितरण के रूप में परिभाषित करते हैं , तोMnn

p(Zn=a)=p(XnMn1)p(Yn1=a|XnMn1)+p(Xn>Mn1)kp(Zn1=ak)p(Xn=k|Xn>Mn1)

और हम का उपयोग करके गणना कर सकते हैंMn

p(Mn=a)=p(XnMn1)p(Xn=a|XnMn1)+p(Xn>Mn1)p(Mn1=a|Xn>Mn1)

वैसे भी, यह सब मिलकर और पर आधारित एक गतिशील प्रोग्रामिंग एल्गोरिदम का सुझाव देता है । में द्विघात होना चाहिए ।Yn,ZnMnn

संपादित करें: गणना करने के तरीके पर एक टिप्पणी की गई है । बाद से प्रत्येक केवल छह में से एक मान ले सकता है, हम सभी संभावनाओं पर योग कर सकते हैं:p(XnMn1)Xn,Mn1

p(XnMn1)=a,bp(Xn=a,Mn1=b,ab)

इसी तरह, गणना नियम लागू करके की जा सकती है, फिर के संभावित मूल्यों पर ।p(Xn=k|Xn>Mn1)Xn,Mn1


1
+1 यह सही लगता है और आपने कहा कि यह द्विघात है। लेकिन कुछ साल हो गए हैं जब मैंने आंकड़े लिए हैं (मैं मुख्य रूप से एक प्रोग्रामर हूं)। इसलिए मैं इसे उत्तर के रूप में चिह्नित करने से पहले इसे पूरी तरह से समझना चाहूंगा। इसके अलावा, मुझे लगता है कि आपके पास पी (nth सबसे छोटी डाई है) क्या इसमें यह शामिल है कि क्या nth को सबसे छोटे के साथ बांधा गया है? जैसे कि सभी 3s को रोल करना।
स्काईस्पीरल 7

अच्छी पकड़। यदि वें रोल लुढ़का वर्तमान न्यूनतम के समान है, तो हम यह मान सकते हैं कि मरने वाले को गिरा दिया जाए। किस मामले में वितरण । मैंने इसे प्रतिबिंबित करने के लिए कुछ s लिए स्वैप किया है । nYn1(<)()
एंडी जोन्स 18

धन्यवाद। अगर मैं इसे सही ढंग से समझता हूं तो मुझे लगता है कि आपके सूत्र उत्तर हैं। हालाँकि, मैं नहीं जानता कि p (X (n)> M (n-1)) (या इसका निषेध) या p (X (n) = k | X (n)> M (n-1) की गणना कैसे की जाए? )) तो मैं अभी तक इस जवाब का उपयोग नहीं कर सकता। मैं इसे उत्तर के रूप में चिह्नित करूंगा लेकिन मुझे अधिक जानकारी चाहिए। क्या आप इन्हें समझाने के लिए अपने उत्तर को संपादित कर सकते हैं या मुझे इसे एक और प्रश्न के रूप में पोस्ट करना चाहिए?
स्काईस्पीरल 7

मेरे उत्तर का संपादन किया।
एंडी जोन्स

1
क्षमा करें, मुझे पता है कि यह डेढ़ साल हो गया है, लेकिन आखिरकार मैंने इस फॉर्मूले को कोड में लागू करने के लिए तैयार कर लिया है। हालाँकि p (Z (n) = a) सूत्र गलत प्रतीत होता है। मान लीजिए कि 2 पक्षों के साथ 2 पासा (सबसे नीची), परिणाम 1 होने की संभावना क्या है? X (n) के सबसे छोटे या बंधे होने की संभावना 3/4 और p (Y (n-1) = 1) 1/2 है, ताकि Z (n) सही उत्तर होने पर भी कम से कम 3/8 वापस आ जाए 1/4। Z सूत्र मुझे सही लगता है और मुझे नहीं पता कि इसे कैसे ठीक किया जाए। तो अगर यह पूछने के लिए बहुत ज्यादा नहीं है: आपको क्या लगता है?
SkySpiral7

1

मेरे पास इसके लिए एक उचित रूप से कुशल एल्गोरिथ्म है, जो परीक्षण पर, सभी संभावनाओं की गणना पर कम भारी भरोसा करते हुए शुद्ध पाशविक बल के परिणामों से मेल खाता प्रतीत होता है। यह वास्तव में 4d6, ड्रॉप 1 की उपरोक्त समस्या से अधिक सामान्यीकृत है।

कुछ अंकन पहले: संकेत मिलता है कि आप पासे को चेहरों (पूर्णांक मानों से ) के साथ रहे हैं , और केवल उच्चतम पासे को लुढ़का हुआ मानते हैं । आउटपुट पासा मानों का एक क्रम है, उदाहरण के लिए पैदावार यदि आप चार पासा पर रोल करते हैं। (ध्यान दें कि मैं इसे "अनुक्रम" कह रहा हूं, लेकिन यहां आदेश महत्वपूर्ण नहीं है, खासकर जब से हम अंत में परवाह करते हैं, अनुक्रम का योग है।)XNdYXY1YN43d63,4,51,3,4,5

प्रायिकता (या अधिक विशेष रूप से, ) मूल समस्या का एक सरलीकृत संस्करण है, जहाँ हम केवल पासा के एक विशिष्ट सेट पर विचार कर रहे हैं, और सभी संभावित सेटों पर विचार नहीं किया जा रहा है, जो एक तक आते हैं। योग दिया।P(XNdY=S)P(43d6=S)

मान लीजिए है विशिष्ट मान, , ऐसी है कि , और प्रत्येक की गणना । उदाहरण के लिए, यदि , तो , , और ।Sks0,s1,...,sksi>si+1siciS=3,4,4,5(s0,c0)=(5,1)(s1,c1)=(4,2)(s2,c2)=(3,1)

आप निम्न तरीके से गणना कर सकते हैं :P(XNdY=S)

P(XNdY=S)=(i=0k1(Xh=0i1chci))(j=0XN(ck+XNck+XNj)(sk1)j)YX

वह बहुत गन्दा है, मुझे पता है।

उत्पाद अभिव्यक्ति सभी के माध्यम से पुनरावृत्ति कर रहा है, लेकिन के मानों में सबसे कम है , और उन सभी तरीकों की गणना करके जो पासे के बीच वितरित किए जा सकते हैं। के लिए , कि सिर्फ है , लेकिन के लिए , हम दूर करने के लिए है पासा कि पहले से ही के लिए अलग सेट किया गया है , और के लिए वैसे ही आप निकालना होगा ।i=0k1Ss0(Xci)s1c0s0sih=0i1ch

योग अभिव्यक्ति सभी संभावनाओं के माध्यम से पुनरावृत्ति कर रहा है कि गिराए गए पासा में से बराबर थे , क्योंकि उनके मूल्य के साथ साथ संयुक्त राष्ट्र के गिराए गए पासा के लिए संभावित संयोजनों को प्रभावित करता है ।j=0XNsksk

उदाहरण के लिए, आइए :P[43d6=(5,4,4)]

(s1,c1)=(5,1)
(s2,c2)=(4,2)

इसलिए उपरोक्त सूत्र का उपयोग करना:

P[43d6=(5,4,4)]=(41)((33)30+(32)31)64=5162=0.0308641975¯

एक डोमेन इश्यू पर सूत्र टूट जाता है जब और होता है, जिससे का पहला कार्यकाल होता है, जिसे अनिश्चित माना जाता है और इसे रूप में माना जाना चाहिए । ऐसे मामले में, एक योग वास्तव में आवश्यक नहीं है, और छोड़ा जा सकता है, क्योंकि सभी गिराए गए पासा में भी का मान होगा ।j = 0 0 0 1 s k = 1sk=1j=0001sk=1

अब यहाँ मुझे कुछ जानवर बल पर भरोसा करने की आवश्यकता है। मूल समस्या कुछ मूल्य होने के योग की संभावना की गणना करना था, और छोड़ने के बाद व्यक्तिगत पासा का प्रतिनिधित्व करता है। इसका मतलब है कि आपको सभी संभावित अनुक्रमों (ऑर्डर को अनदेखा करना) के लिए संभावनाओं को जोड़ना होगा, जिसका योग दिया गया मूल्य है। शायद सभी ऐसे मूल्यों को एक ही बार में गणना करने का एक सूत्र है , लेकिन मैंने अभी तक ब्रोकिंग की कोशिश नहीं की है।एस एसXNdYSS

मैंने इसे पहले पायथन में लागू किया है, और ऊपर इसे गणितीय रूप से व्यक्त करने का एक प्रयास है। मेरा पायथन एल्गोरिथ्म सटीक और यथोचित रूप से कुशल है। कुछ अनुकूलन हैं जो कि के संपूर्ण वितरण की गणना के मामले के लिए किए जा सकते हैं , और शायद मैं बाद में ऐसा करूंगा।XNdY


एक प्रोग्रामर के रूप में मेरे लिए आपके पायथन कोड को समझना आसान हो सकता है (हालाँकि मैंने कभी पायथन का उपयोग नहीं किया है इसलिए यह समान हो सकता है)। यहां कोड पोस्ट करना बंद विषय है लेकिन आप
गीथूब

1
आपका उत्तर सही हो सकता है और इसे से जटिलता को कम करने लगता है O(Y^X)करने के लिए O((Y+X-1)!/(X!*(Y-1)!))लेकिन यह अभी भी की whuber के जवाब के रूप में के रूप में कुशल नहीं है O(c*X*log(X))। आपके उत्तर के लिए धन्यवाद यद्यपि +1।
SkySpiral7
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.