2013-08-11 4 views
6

सवाल बहुत से पत्र ग्रिड उत्पन्न करने के लिए मूल रूप से है, जहां अच्छा 5 के शब्दों के बहुत सारे होने के रूप में परिभाषित किया गया है "मैं कैसे खेल 'बौगल' शब्द के बहुत सारे के साथ के लिए एक अच्छा ग्रिड उत्पन्न करते हैं" या अधिक अक्षर।कैसे शब्द

बौगल एक खेल है जहाँ आप उन पर पत्र के साथ पासा रोल है, वे एक 4x4 ग्रिड में रखा जाता है। उदाहरण:

H S A V 
E N I S 
K R G I 
S O L A 

शब्द पत्र क्षैतिज जोड़ने, ऊर्ध्व या तिरछे द्वारा बनाया जा सकता है। अच्छा उदाहरण ग्रिड में आप शब्द "VANISHERS", "Vanisher", "धूर्त", "aligners", "बचत", "sinkers" और चारों ओर 271 अन्य शब्दकोश के आधार पर शब्दों का प्रयोग, उदाहरण के लिए "कर सकते हैं इसके बाद के संस्करण के रूप में "," मैं "," हवा "," पाप "," है ", आदि ...

एक बुरा उदाहरण के रूप में इस ग्रिड

O V W C 
T K Z O 
Y N J H 
D E I E 

केवल ~ 44 शब्द का केवल 2 जो 4 अक्षर लंबे हैं। "टायनेड" और "हंकी"।

लेकिन यह सही प्रश्न का similar questions के बहुत सारे AFAICT नहीं नहीं है। यह स्पष्ट रूप से "दोस्तों के साथ हाथापाई" खेल का एक संदर्भ है।

पहला समाधान, यादृच्छिक पर पत्र उठा, समस्या यह है कि अगर आप गलती से सभी व्यंजन लेने वहाँ कोई शब्द हो जाएगा है। कुछ यादृच्छिक स्वर जोड़ना शब्दों के अच्छे सेट की गारंटी के लिए पर्याप्त नहीं है। आपको केवल 1 से 4 अक्षर शब्द मिल सकते हैं जबकि एक अच्छा एल्गोरिदम अक्षरों का एक सेट चुनता है जिसमें 200 शब्द कई शब्द> 7 अक्षर होते हैं।

मैं किसी भी एल्गोरिथ्म के लिए खुला रहा हूँ। जाहिर है मैं हर संभव ग्रिड खोजने और फिर सबसे शब्दों के साथ ग्रिड से उन्हें छँटाई लेकिन यह है कि सरल समाधान हमेशा के लिए ले चलने के लिए होता जानवर बल समाधान करने के लिए कोड लिख सकते हैं।

मैं विभिन्न शब्दकोषों की कल्पना कर सकता हूं जैसे कि एक लंबा शब्द (8-16 अक्षर) चुनना, उन अक्षरों को ग्रिड में यादृच्छिक रूप से रखना, लेकिन इस तरह से वास्तव में शब्द बना सकते हैं और फिर बाईं ओर रिक्त स्थान भर सकते हैं। मुझे संदेह है कि शब्दों के अच्छे सेट की गारंटी देने के लिए भी पर्याप्त नहीं है, हालांकि मैंने अभी तक यह कोशिश नहीं की है।

यह संभव है कि समाधान को शब्दों के सामान्य भागों को जानने के लिए एक शब्दकोश को पूर्व-प्रोसेसिंग की आवश्यकता हो। उदाहरण के लिए सभी शब्द जो "ing" या "ers" या "ght" या "tion" या "land" में समाप्त होते हैं। या किसी भी तरह उन्हें साझा अक्षरों के ग्राफ में व्यवस्थित करना। शायद अक्षरों के कुछ सेटों को वज़न देना "आईएनजी" या "र्स" अक्सर डाला जाता है।

विचार?

+1

मैं एक पत्र आवृत्ति चार्ट खोजने और उस पर आधारित भारित यादृच्छिकरण का उपयोग करने का सुझाव देता हूं। शायद एक ग्रिड उत्पन्न करें, इसे जांचें, और यदि यह "पर्याप्त अच्छा" नहीं है तो एक नया प्रयास करें। – Kevin

उत्तर

0

जिस तरह से बोगल काम करता है वह है कि पक्ष में कुछ अक्षरों के साथ छः तरफा मर जाते हैं। उन मरने को यादृच्छिक रूप से 16 वर्गों को सौंपा जाता है और फिर लुढ़काया जाता है। आम पत्र पासा के अधिक चेहरे पर होते हैं। चारों ओर खोजें - आप पासा का सटीक सेट प्राप्त करने में सक्षम हो सकते हैं।

+1

मुझे लगता है कि हैस्ब्रो अपने सटीक मरने का उपयोग करने की स्वीकृति नहीं देगा। खुद को एक सेट बनाने के लिए बेहतर है। – Kevin

1

ब्रूट-फोर्स सर्च प्रस्ताव से कम संभवतः यह गारंटी देने का कोई तरीका नहीं है कि आपके पास अच्छा ग्रिड है। यदि आप बोगल पासा पर पाए गए अक्षर आवृत्ति का उपयोग करते हैं, तो आपको 'औसत' ग्रिड मिलेगा (ठीक उसी तरह जैसे आप पासा रोल करते हैं)।आप उदाहरण के लिए, अतिरिक्त heuristics या फिल्टर जोड़कर इस सुधार सकता है:

ensure that (almost) every consonant is 'in-reach-of' a vowel 
ensure 'Q' is 'in-reach-of' a 'U' 
ensure the ratio of vowels to consonants is within a set range 
ensure the number of rare consonants is not too large 
etc 

तो फिर तुम

set letters using weighted letter frequency 
change (swap/replace) letters not meeting your heuristics 

यह अभी भी एक बुरा ग्रिड के माध्यम से जब तक आप जानवर के माध्यम से जाँच की पाने के लिए संभव हो जाएगा सकता है -फोर्स, लेकिन आप साधारण यादृच्छिक रूप से जेनरेट किए गए ग्रिड द्वारा लौटे गए लोगों से काफी खराब ग्रिड की संख्या को कम करने में सक्षम हो सकते हैं।

वैकल्पिक रूप से, यादृच्छिक ग्रिड उत्पन्न करें और अच्छे ग्रिड लेने के लिए आवश्यक बलपूर्वक बल कार्य करें। लेकिन पृष्ठभूमि में ऐसा करें (आवश्यकतानुसार दिन या सप्ताह)। फिर अच्छी ग्रिड का एक गुच्छा स्टोर करें और आवश्यक होने पर आवश्यक रूप से एक को चुनें (और अपनी सूची को पार करें ताकि आप इसे फिर से न देख सकें)।

0
  1. शब्दकोश से सांख्यिकीय अक्षर आवृत्ति और अक्षर-जोड़ी आवृत्तियों की गणना करें।

  2. बेतरतीब ढंग से चार केंद्रीय वर्गों

  3. में से एक को चुनने के बेतरतीब ढंग से कि वर्ग एक पत्र आवृत्ति के आधार पर भारित के लिए एक पत्र चुनें से प्रारंभ।

  4. रिकर्सिवली:

    4,1। यादृच्छिक रूप से सभी खाली जुड़े वर्गों में से एक का चयन करें।

    4.2। किसी भी जुड़े हुए स्क्वायर स्क्वायर के दोहरी अक्षर आवृत्तियों और किसी भी जुड़े हुए खाली वर्ग की एकल अक्षर आवृत्तियों के संयोजन, (औसत) द्वारा भारित उस वर्ग के लिए यादृच्छिक रूप से एक अक्षर चुनें।

और voila!

पीएस आप ग्रिड में 4.2 की उपस्थिति की वर्तमान गणना के आधार पर व्युत्पन्न वैश्विक पत्र जोड़ने के साथ प्रयोग करना भी चाह सकते हैं।

संबंधित मुद्दे