चक नॉरिस बनाम ट्रैवलिंग सेल्समैन


19

परिचय

लगभग हर कोई ट्रैवलिंग सेल्समैन प्रॉब्लम (TSP) से परिचित है । यह कार्य Nशहरों की एक सूची को देखते हुए , न्यूनतम हैमिल्टन चक्र का पता लगाना है, जो कि सबसे छोटा रास्ता कहता है जो प्रत्येक शहर का दौरा करता है और शुरू में वापस पूर्ण-चक्र आता है। यह इस चुनौती के बारे में नहीं है। यह चुनौती TSP के चक नॉरिस के समाधान को लागू करने के लिए है:

चक नॉरिस ने O(1)समय में ट्रैवलिंग सेल्समैन समस्या को हल किया : सेल्समैन को एन टुकड़ों में तोड़ दें; प्रत्येक टुकड़े को एक अलग शहर में किक करें।

चुनौती

इस तरह से टीएसपी को हल करने के लिए, हमें एक पर्याप्त रूप से टिकाऊ सेल्समैन की जरूरत है, जो जमाव जैसी विसंगतियों से दूर नहीं जाएगा; कई शहरों का दौरा; बेचने के लिए उत्पादों का एक सेट; विघटन के लिए एक ठोस तरीका; और स्कोरिंग के लिए एक गणना।

विशिष्टता

  • शहरों
    • N हमारे सेल्समैन के आने की सूचना दी जाएगी
  • विक्रेता
    • मुख्य कार्यक्रम या समारोह
    • भाषा में लिखा है X
    • लंबाई mod के Nबराबर है0
  • उत्पाद
    • आवर्त सारणी पर तत्वों का पूरा नाम
    • इसमें तत्वों के नए स्वीकृत नाम शामिल हैं
  • बहिष्कार
    • सेल्समैन को Nबराबर लंबाई के निरंतर टुकड़ों में विभाजित करना
    • प्रत्येक टुकड़ा भाषा में एक मान्य फ़ंक्शन या प्रोग्राम होना चाहिए X
  • उत्पादन
    • जब सेल्समैन को निष्पादित किया जाना चाहिए Chuck Norrisऔर कटा हुआ टुकड़े प्रत्येक आउटपुट को एक अलग उत्पाद बनाना चाहिए
    • केवल अतिरिक्त अनुगामी श्वेत स्थान स्वीकार्य है
  • स्कोरिंग
    • Lबाइट्स में सेल्समैन की लंबाई, शहरों की संख्या से विभाजित N, वर्ग।
    • Score = L/(N*N)
    • सबसे छोटा स्कोर जीतता है
    • अपने दशमलव स्कोर को पोस्ट करते समय कृपया 3 महत्वपूर्ण आंकड़े शामिल करें

उदाहरण

  1. यह सेल्समैन 3 शहरों का दौरा N=3करता है और इसकी लंबाई 9 है L=9। इस प्रकार इस उत्तर के लिए स्कोर होगा S = 9 / (3 * 3) = 9/9 = 1
    • ध्यान दें कि सेल्समैन और प्रत्येक कटा हुआ टुकड़ा (जिनमें से 3 हैं), सभी एक ही भाषा में मान्य कार्यक्रम या कार्य होने चाहिए।
Program      -> Output
-------         ------
aaaBBBccc    -> Chuck Norris

aaa          -> Helium
BBB          -> Iridium
ccc          -> Tennessine
  1. N=4और L=20ऐसा हैS=20/16=1.25
Program                 -> Output
-------                    ------
aaaaaBBBBBcccccDDDDD    -> Chuck Norris

aaaaa                   -> Hydrogen
BBBBB                   -> Cadmium
ccccc                   -> Mercury
DDDDD                   -> Iron

3
क्या मैथेमेटिका की ElementDataअनुमति के अनुसार बिल्ट-इन हैं ? (मुझे संदेह है कि यह बहुत बचत करेगा, लेकिन मुझे नहीं पता।)
मार्टिन एंडर

क्या आउटपुट का पूंजीकरण महत्वपूर्ण है?
मार्टिन एंडर

1
@MartinEnder ^^ Yes ^ Yes
NonlinearFruit

6
क्या कोई करीबी मतदाता समझा सकता है कि वे वास्तव में किस हिस्से को अस्पष्ट पाते हैं? (मुझे पता है कि यह सिर्फ मेरे दो सवाल नहीं हो सकते हैं, जो मुझे लगता है कि चुनौती में स्पष्ट रूप से संबोधित करने की आवश्यकता नहीं है, क्योंकि जब मैंने उन्हें पोस्ट किया था, तो पहले से ही करीबी वोट थे।)
मार्टिन एंडर

2
@MartinEnder से पूरी तरह सहमत हैं। यदि आपको कोई चुनौती पसंद नहीं है, तो बस एक और प्रयास करें।
edc65

जवाबों:


11

सीजाम, एल = 1482, एन = 114, स्कोर 0.114

'C:L"arbon"  L'h+:L;"Gold"L'u+:L;"Iron"L'c+:L;"Lead"L'k+:L;"Neon"LS+:L;"Argon"L'N+:L"ickel"L'o+:L;"Zinc""Coppe"L'r+:L"Silve"L'r+:LL'i+:L;"Tin" "Boron"      "Radon"      "Barium"     "Cerium"     "Cesium"     "Cobalt"     "Curium"     "Erbium"     "Helium"     "Indium"     "Iodine"     "Osmium"     "Oxygen"     "Radium"     "Sodium"     "Sulfur"     "Arsenic"    "Bismuth"    "Bohrium"    "Bromine"    "Cadmium"    "Calcium"    "Dubnium"    "Fermium"    "Gallium"    "Hafnium"    "Hassium"    "Holmium"    "Iridium"    "Krypton"    "Lithium"    "Mercury"    "Niobium"    "Rhenium"    "Rhodium"    "Silicon"    "Terbium"    "Thorium"    "Thulium"    "Uranium"    "Yttrium"    "Actinium"   "Aluminum"   "Antimony"   "Astatine"   "Chlorine"   "Chromium"   "Europium"   "Fluorine"   "Francium"   "Hydrogen"   "Lutetium"   "Nihonium"   "Nitrogen"   "Nobelium"   "Platinum"   "Polonium"   "Rubidium"   "Samarium"   "Scandium"   "Selenium"   "Tantalum"   "Thallium"   "Titanium"   "Tungsten"   "Vanadium"   "Americium"  "Berkelium"  "Beryllium"  "Flerovium"  "Germanium"  "Lanthanum"  "Magnesium"  "Manganese"  "Moscovium"  "Neodymium"  "Neptunium"  "Oganesson"  "Palladium"  "Plutonium"  "Potassium"  "Ruthenium"  "Strontium"  "Tellurium"  "Ytterbium"  "Zirconium"  "Dysprosium" "Gadolinium" "Lawrencium" "Meitnerium" "Molybdenum" "Phosphorus" "Promethium" "Seaborgium" "Technetium" "Tennessine" "Californium""Copernicium""Einsteinium""Livermorium""Mendelevium""Roentgenium"]L's+"Xenon"?

इसे ऑनलाइन आज़माएं!

प्रत्येक कार्यक्रम 13 बाइट्स लंबा है। यहाँ उन्हें अलग-अलग लाइनों में विभाजित किया गया है:

'C:L"arbon"  
L'h+:L;"Gold"
L'u+:L;"Iron"
L'c+:L;"Lead"
L'k+:L;"Neon"
LS+:L;"Argon"
L'N+:L"ickel"
L'o+:L;"Zinc"
"Coppe"L'r+:L
"Silve"L'r+:L
L'i+:L;"Tin" 
"Boron"      
"Radon"      
"Barium"     
"Cerium"     
"Cesium"     
"Cobalt"     
"Curium"     
"Erbium"     
"Helium"     
"Indium"     
"Iodine"     
"Osmium"     
"Oxygen"     
"Radium"     
"Sodium"     
"Sulfur"     
"Arsenic"    
"Bismuth"    
"Bohrium"    
"Bromine"    
"Cadmium"    
"Calcium"    
"Dubnium"    
"Fermium"    
"Gallium"    
"Hafnium"    
"Hassium"    
"Holmium"    
"Iridium"    
"Krypton"    
"Lithium"    
"Mercury"    
"Niobium"    
"Rhenium"    
"Rhodium"    
"Silicon"    
"Terbium"    
"Thorium"    
"Thulium"    
"Uranium"    
"Yttrium"    
"Actinium"   
"Aluminum"   
"Antimony"   
"Astatine"   
"Chlorine"   
"Chromium"   
"Europium"   
"Fluorine"   
"Francium"   
"Hydrogen"   
"Lutetium"   
"Nihonium"   
"Nitrogen"   
"Nobelium"   
"Platinum"   
"Polonium"   
"Rubidium"   
"Samarium"   
"Scandium"   
"Selenium"   
"Tantalum"   
"Thallium"   
"Titanium"   
"Tungsten"   
"Vanadium"   
"Americium"  
"Berkelium"  
"Beryllium"  
"Flerovium"  
"Germanium"  
"Lanthanum"  
"Magnesium"  
"Manganese"  
"Moscovium"  
"Neodymium"  
"Neptunium"  
"Oganesson"  
"Palladium"  
"Plutonium"  
"Potassium"  
"Ruthenium"  
"Strontium"  
"Tellurium"  
"Ytterbium"  
"Zirconium"  
"Dysprosium" 
"Gadolinium" 
"Lawrencium" 
"Meitnerium" 
"Molybdenum" 
"Phosphorus" 
"Promethium" 
"Seaborgium" 
"Technetium" 
"Tennessine" 
"Californium"
"Copernicium"
"Einsteinium"
"Livermorium"
"Mendelevium"
"Roentgenium"
]L's+"Xenon"?

अनुपलब्ध तत्व डर्मस्टाडियम, प्रेडोडायमियम, प्रोटैक्टीनियम और रदरफोर्डियम हैं जो 12 या 13 वर्ण लंबे हैं, जिसका अर्थ है कि मैं उन्हें 13 वर्णों में मुद्रित नहीं कर सकता।

विचार यह है कि पहले कुछ कार्यक्रम, जो छोटे नामों वाले तत्वों को प्रिंट करते हैं , Chuck Norriचर में स्ट्रिंग का निर्माण करने के लिए अपने बाहरी वर्णों का उपयोग करते हैं L, जो अपने स्वयं के उपयोग किए जाने पर आउटपुट को प्रभावित नहीं करते हैं। अंतिम कार्यक्रम तब जांचता है कि क्या कुछ पहले से ही स्टैक पर है, और इसे L(प्लस s) और के बीच चयन करने के लिए उपयोग करता है Xenon

कुछ अतिरिक्त बाइट्स को चरित्र नाम का उपयोग करके सहेजा जाता है, जिसे हम Lतत्व नाम के भाग के रूप में Cजोड़ते हैं, विशेष रूप से आर्बन, Nickel, Coppe rऔर सिल्वे के लिए r


2

पायथन, एल = 2596, एन = 118, स्कोर = 0.186

प्रत्येक स्लाइस की लंबाई 22 है ताकि यह बहुत लंबा हो।

lambda:"Gold"; print"""";print "Carbon     "print   "Thorium     "print   "Curium      "print "Calcium       "print "Nickel        "print      "Zinc     "print    "Neon       "print "Boron         "print   "Iron        "print  "Cerium       "print "Barium        "print "Caesium       """[9::22];lambda:"Tin"[0];lambda:"Lead    "#print"Argon          "print"Radon          "print"Xenon          "print"Erbium         "print"Cobalt         "print"Copper         "print"Helium         "print"Indium         "print"Iodine         "print"Osmium         "print"Oxygen         "print"Radium         "print"Silver         "print"Sodium         "print"Sulfur         "print"Arsenic        "print"Bismuth        "print"Bohrium        "print"Bromine        "print"Cadmium        "print"Dubnium        "print"Fermium        "print"Gallium        "print"Hafnium        "print"Hassium        "print"Holmium        "print"Iridium        "print"Krypton        "print"Lithium        "print"Mercury        "print"Niobium        "print"Rhenium        "print"Rhodium        "print"Silicon        "print"Terbium        "print"Thulium        "print"Uranium        "print"Yttrium        "print"Actinium       "print"Antimony       "print"Astatine       "print"Chlorine       "print"Chromium       "print"Europium       "print"Fluorine       "print"Francium       "print"Hydrogen       "print"Lutetium       "print"Nitrogen       "print"Nobelium       "print"Platinum       "print"Polonium       "print"Rubidium       "print"Samarium       "print"Scandium       "print"Selenium       "print"Tantalum       "print"Thallium       "print"Titanium       "print"Tungsten       "print"Vanadium       "print"Nihonium       "print"Aluminium      "print"Americium      "print"Berkelium      "print"Beryllium      "print"Flerovium      "print"Germanium      "print"Lanthanum      "print"Magnesium      "print"Manganese      "print"Neodymium      "print"Neptunium      "print"Palladium      "print"Plutonium      "print"Potassium      "print"Ruthenium      "print"Strontium      "print"Tellurium      "print"Ytterbium      "print"Zirconium      "print"Moscovium      "print"Oganesson      "print"Dysprosium     "print"Gadolinium     "print"Lawrencium     "print"Meitnerium     "print"Molybdenum     "print"Phosphorus     "print"Promethium     "print"Seaborgium     "print"Technetium     "print"Tennessine     "print"Californium    "print"Copernicium    "print"Einsteinium    "print"Livermorium    "print"Mendelevium    "print"Roentgenium    "print"Darmstadtium   "print"Praseodymium   "print"Protactinium   "print"Rutherfordium  "

स्लाइसिंग और डिशिंग के बाद सेल्समैन इस प्रकार है:

lambda:"Gold"; print""  # <-- This is a function
"";print "Carbon     "
print   "Thorium     "
print   "Curium      "
print "Calcium       "
print "Nickel        "
print      "Zinc     "
print    "Neon       "
print "Boron         "
print   "Iron        "
print  "Cerium       "
print "Barium        "
print "Caesium       "
""[9::22];lambda:"Tin"  # <-- This is a function and the choke point
[0];lambda:"Lead    "#  # <-- This is a function
print"Argon          "
print"Radon          "
print"Xenon          "
print"Erbium         "
print"Cobalt         "
print"Copper         "
print"Helium         "
print"Indium         "
print"Iodine         "
print"Osmium         "
print"Oxygen         "
print"Radium         "
print"Silver         "
print"Sodium         "
print"Sulfur         "
print"Arsenic        "
print"Bismuth        "
print"Bohrium        "
print"Bromine        "
print"Cadmium        "
print"Dubnium        "
print"Fermium        "
print"Gallium        "
print"Hafnium        "
print"Hassium        "
print"Holmium        "
print"Iridium        "
print"Krypton        "
print"Lithium        "
print"Mercury        "
print"Niobium        "
print"Rhenium        "
print"Rhodium        "
print"Silicon        "
print"Terbium        "
print"Thulium        "
print"Uranium        "
print"Yttrium        "
print"Actinium       "
print"Antimony       "
print"Astatine       "
print"Chlorine       "
print"Chromium       "
print"Europium       "
print"Fluorine       "
print"Francium       "
print"Hydrogen       "
print"Lutetium       "
print"Nitrogen       "
print"Nobelium       "
print"Platinum       "
print"Polonium       "
print"Rubidium       "
print"Samarium       "
print"Scandium       "
print"Selenium       "
print"Tantalum       "
print"Thallium       "
print"Titanium       "
print"Tungsten       "
print"Vanadium       "
print"Nihonium       "
print"Aluminium      "
print"Americium      "
print"Berkelium      "
print"Beryllium      "
print"Flerovium      "
print"Germanium      "
print"Lanthanum      "
print"Magnesium      "
print"Manganese      "
print"Neodymium      "
print"Neptunium      "
print"Palladium      "
print"Plutonium      "
print"Potassium      "
print"Ruthenium      "
print"Strontium      "
print"Tellurium      "
print"Ytterbium      "
print"Zirconium      "
print"Moscovium      "
print"Oganesson      "
print"Dysprosium     "
print"Gadolinium     "
print"Lawrencium     "
print"Meitnerium     "
print"Molybdenum     "
print"Phosphorus     "
print"Promethium     "
print"Seaborgium     "
print"Technetium     "
print"Tennessine     "
print"Californium    "
print"Copernicium    "
print"Einsteinium    "
print"Livermorium    "
print"Mendelevium    "
print"Roentgenium    "
print"Darmstadtium   "
print"Praseodymium   "
print"Protactinium   "
print"Rutherfordium  "

यहाँ छवि विवरण दर्ज करें


अपडेट करें

  • [१६-०९-when Sub] एक टिप्पणी में समाप्त होने वाली पंक्ति में शामिल होने पर उदात्त ने एक अतिरिक्त स्थान जोड़ा
  • [१६-०९-Made०] प्रत्येक स्लाइस में २२ अक्षर लंबे और जोड़े गए

मैं पायथन में काफी हद तक जानता हूं, lambda:"Actinium";print""एक्टिनियम का उत्पादन कैसे होता है ? क्या यह शायद पायथन 3 के लिए खास है?
लाइनस

@Linus लैम्ब्डा कुंजी शब्द एक अनाम फ़ंक्शन बनाता है जो कोई पैरामीटर नहीं लेता है और रिटर्न करता है Actiniumprint ""के बाद विक्रेता विखंडित कर दिया गया है कुछ भी उपयोगी नहीं करता है।
NonlinearFruit
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.