9 বাইটে 40 নম্বর


40

নির্দেশিত হ্যামিলটোনীয় পাথ 3 × 3 গ্রিডে সাজানো যায় এমন 40 টি উপায় রয়েছে : এই গ্রাফিকটি ( ধন্যবাদ স্প 3000! ) কেবলমাত্র 20 টি পুনঃনির্দেশিত পথ দেখায়। 40 টি নির্দেশিত পথের জন্য উভয় দিকের প্রতিটি রঙিন রেখা অতিক্রম করুন।
সমস্ত 3 একটি 3 & বার 3 এর হ্যামিলটোনিয়ান পুনরায় নির্দেশিত পথ;  গ্রিড

চ্যালেঞ্জ

কেবল প্রিন্টযোগ্য এএসসিআইআই ব্যবহার করে একটি 3 of 3 অক্ষর গ্রিড লিখুন যেমন:

ABC
DEF
GHI

40 টি নির্দেশিত পাথের প্রতিটি যখন এই গ্রিড থেকে 40 টি একক-লাইন, 9-চরিত্রের প্রোগ্রাম হিসাবে পড়া হয় তখন লক্ষ্য হয় প্রতিটি প্রোগ্রামের আউটপুট 1 থেকে 40 এর মধ্যে একটি অনন্য পূর্ণসংখ্যা হয় all সমস্ত 40 টি পাথের জন্য এটি করা কঠিন এবং অসম্ভব বলে মনে হচ্ছে, সুতরাং আপনার এটি যতটা সম্ভব পথের জন্য কাজ করা দরকার।

যার জমা দেওয়া 40 টি পথের প্রোগ্রামগুলি 1 থেকে 40 এর মধ্যে সবচেয়ে স্বতন্ত্র সংখ্যা আউটপুট দেয় তা বিজয়ী হবে। টাইব্রেকার আগের জমাগুলিতে যায়।

পাথ-প্রোগ্রামগুলি 1 থেকে 40 এর মধ্যে কোনও পূর্ণসংখ্যাকে ত্রুটিযুক্ত করে না বা আউটপুট দেয় না বা ইতিমধ্যে coveredেকে দেওয়া অন্য পাথ-প্রোগ্রামটি গণনা করা হয় না। বিশেষ করে:

  • প্রোগ্রামগুলি সংকলন, চলমান বা প্রস্থান করার সময় ত্রুটিগুলি গণনা করা হয় না। সতর্কতা ঠিক আছে।
  • যে প্রোগ্রামগুলি 1 থেকে 40 পর্যন্ত কোনও পূর্ণসংখ্যার আউটপুট দেয় না বা কিছুটা বিকৃত কিছু যেমন আউটপুট দেয় না -35বা 35 36গণনা করা হয় না।
  • আউটপুট উত্পাদন করতে ব্যবহারকারী ইনপুট প্রয়োজন এমন প্রোগ্রামগুলি গণনা করা হয় না।
  • কখনও শেষ হয় না এমন প্রোগ্রাম গণনা করা হয় না।
  • থেকে এখন , প্রোগ্রাম যে নিয়ন্ত্রণবাদী নয় গণনা করা হয় না।
  • অন্যথায় বৈধ প্রোগ্রামগুলি যে 1 থেকে 40 এর মধ্যে একটি পূর্ণসংখ্যার আউটপুট দেয় যে অন্য বৈধ প্রোগ্রামের ইতিমধ্যে আউটপুট রয়েছে তা গণনা করা হয় না। (প্রথম প্রোগ্রাম গণনা করা হয়।)
  • 1 থেকে 40 (অন্তর্ভুক্ত) পর্যন্ত সংখ্যার পূর্ণসংখ্যার প্রতিনিধিত্বকারী আউটপুট কেবলমাত্র সেই প্রোগ্রামগুলি আপনার মোট হিসাবে গণনা করা হয়। সংখ্যাগুলি স্বাভাবিক 1,, 2... 39, 40বিন্যাসে থাকবে বলে আশা করা হচ্ছে যদি না এটি আপনার ভাষার জন্য আদর্শ না হয়। (আউটপুটটিতে একটি পেছনের নতুন লাইন ঠিক আছে))
  • আপনার প্রোগ্রামগুলির আউটপুটটি কোন সংখ্যা এবং কী ক্রমে সেগুলি গুরুত্বপূর্ণ তা বিবেচনা করে না। বৈধ প্রোগ্রাম সম্পর্কিত বিষয়গুলির থেকে পৃথক পূর্ণসংখ্যার সংখ্যা।

সমস্ত পাথ-প্রোগ্রাম অবশ্যই একই ভাষায় চালানো উচিত। তবে, "প্রোগ্রামগুলি" আসলে ফাংশন (কোনও প্রয়োজনীয় যুক্তি ছাড়াই) বা আরপিএল কমান্ডের পাশাপাশি পুরো প্রোগ্রামগুলি হতে পারে যা তাদের লক্ষ্য পূর্ণসংখ্যাকে মুদ্রণ করে বা ফিরিয়ে দেয়। আপনি ফাংশন, আরপিএল কমান্ড এবং সম্পূর্ণ প্রোগ্রামগুলির মধ্যে মেশা এবং মিল করতে পারেন।

আপনার 9 টি মুদ্রণযোগ্য ASCII অক্ষর আলাদা করার দরকার নেই।

উদাহরণ

যদি আপনার 3 × 3 গ্রিড ছিল

ABC
DEF
GHI

এবং আপনার 40 টি প্রোগ্রাম এবং আউটপুটগুলি দেখতে এমন দেখাচ্ছে

ABCFEDGHI -> 26
ABCFIHEDG -> 90
ABCFIHGDE -> 2
ABEDGHIFC -> syntax error
ADEBCFIHG -> prints 40 but then errors
ADGHEBCFI -> 6
ADGHIFCBE -> 6
ADGHIFEBC -> 6
CBADEFIHG -> runtime error
CBADGHEFI -> 3
CBADGHIFE -> 4
CFEBADGHI -> -32
CFIHEBADG -> 38.0
CFIHGDABE -> "36"
EDABCFIHG -> 33
EFCBADGHI -> no output
EHGDABCFI -> compilation error
EHIFCBADG -> 8
GDABCFEHI -> 22
GHEDABCFI -> 41
IHGDEFCBA -> 0
GDEHIFCBA -> '9'
EDGHIFCBA -> +10
CFIHGDEBA -> 11
GHIFCBEDA -> error
IFCBEHGDA -> error
EBCFIHGDA -> prints 23 but then loops infinitely
CBEFIHGDA -> randomly prints either 24 or 44
GHIFEDABC -> error
IFEHGDABC -> 30
EFIHGDABC -> 39
IHGDABEFC -> 7
GDABEHIFC -> 29
EBADGHIFC -> -1
GHIFCBADE -> 26
IHGDABCFE -> 1
IFCBADGHE -> error
GDABCFIHE -> no output
IHEFCBADG -> no output
IFCBADEHG -> "quack"

আপনার স্কোর 14 হবে, কারণ 1 থেকে 40 পর্যন্ত 14 টি স্বতন্ত্র পূর্ণসংখ্যা রয়েছে বৈধভাবে আউটপুট, যথা 26 2 6 3 4 33 8 22 11 30 39 7 29 1


14
-1, চ্যালেঞ্জটিতে পতাকাগুলির কোনও উল্লেখ নেই
অ্যালেক্স এ।

@ Sp3000 চিত্রটিতে বিন্যাসটি কি কোনও নির্দিষ্ট ক্রমে রয়েছে? (আমি চ্যালেঞ্জটির পক্ষে ধরে নিয়েছি অর্ডারটি গুরুত্বপূর্ণ নয়, তবে আমি চিত্রটি সম্পর্কে কৌতূহলের সাথে মরে যাচ্ছি Part বিশেষত, যদি এগুলি হিলবার্ট স্পেস কার্ভের জন্য কোনও এল-সিস্টেমে বীজ হিসাবে ব্যবহৃত হয়, তবে সেখানে কি প্রাকৃতিক এনকোডিং রয়েছে? সেট?)
লুসার ড্রুগ

@ লেজারড্রোগ ওয়েল, এসপি ছবিটি তৈরি করেছে , তাকে জিজ্ঞাসা করা ভাল।
ক্যালভিনের শখ

@ লেজারড্রোগ আপনি যদি কোষকে 1 থেকে 9 নম্বর করেন তবে সেগুলি ডিকোসোগ্রাফিকাল ক্রমে হওয়া উচিত , উদাহরণস্বরূপ প্রথমটি হল123654789
Sp3000

@ লেজারড্রোগ (এটি নির্দেশিত পাথের প্রতিটি জোড়ের অভিধানের-পূর্বের প্রতিনিধি নির্বাচন করুন এবং তারপরে সেই 20 জন প্রতিনিধিকে অভিধানের অনুসারে বাছাই করুন।)
ম্যাথমান্ডান

উত্তর:


27

পারি / জিপি - 24

1%1
 8
2+3

প্যারি / জিপি অঙ্কগুলির মধ্যে ফাঁকা স্থান উপেক্ষা করে 1 8 2, উদাহরণস্বরূপ হিসাবে বিবেচনা করা হয় 182। আন্ডারস্কোর দিয়ে স্পেসগুলি প্রতিস্থাপন করে একই পার্লের জন্য কাজ করতে পারে। আমি পুরো অনুসন্ধানের জায়গাটি নিঃশেষ করি নি, সুতরাং আরও ভাল প্রার্থী থাকতে পারে।

কোনও প্রোগ্রামকে জিপি হিসাবে gp -q -f program.gp, বা সংঘর্ষের সাথে ইন্টারেক্টিভভাবে খাওয়ানো যেতে পারে ।


আউটপুট

1%1 8 2+3 -> 4
1%1 3+8 2 -> 83 # invalid
1%1 3+2 8 -> 29
1%8 2+3 1 -> 32
1 8%1 3+2 -> 7
1 2+8%1 3 -> 20
1 2+3 1%8 -> 19
1 2+3 8%1 -> 12
1%1 8 3+2 -> 3
1%1 2+8 3 -> 84 # invalid
1%1 2+3 8 -> 39
1 8%1 2+3 -> 9
1 3+8%1 2 -> 21
1 3+2 1%8 -> 18
8 1%1 3+2 -> 5
8 1%1 2+3 -> 12 # dup
8+2 1%1 3 -> 16
8+3 1%1 2 -> 15
2 1%1 8+3 -> 6
2+8 1%1 3 -> 5  # dup
3+2 8 1%1 -> 3  # dup
2 8+3 1%1 -> 28
8 2+3 1%1 -> 82 # invalid
1 3+2 8%1 -> 13
2+3 1%8 1 -> 33
3 1%8+2 1 -> 28 # dup
8%1 3+2 1 -> 29 # dup
1%8 3+2 1 -> 22
2+3 8 1%1 -> 2
3 8+2 1%1 -> 38
8 3+2 1%1 -> 83 # invalid
3+2 1%8 1 -> 24
2 1%8+3 1 -> 36
8%1 2+3 1 -> 39 # dup
2+3 1%1 8 -> 15 # dup
3+2 1%1 8 -> 6  # dup
3 1%1 2+8 -> 15 # dup
2 1%1 3+8 -> 16 # dup
3+8 1%1 2 -> 12 # dup
3 1%1 8+2 -> 15 # dup

4 টির চেয়ে সমস্ত মান 12 টি সদৃশ এন্ট্রি সহ প্রয়োজনীয় ব্যাপ্তির মধ্যে।


হালনাগাদ

আমি ক্রাঞ্চিং শেষ করেছি, ছয়টি স্বতন্ত্র 23 টি রয়েছে এবং কেবল একটি 24 টি (সারি দ্বারা পড়া হিসাবে):

23 1%1 6 2+3 [2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 16, 17, 18, 19, 22, 24, 26, 27, 32, 33, 34, 36, 37]
23 1 2%3+2*8 [2, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 25, 26, 29, 31, 32, 37, 40]
23 2 3%1+8 2 [2, 4, 6, 7, 10, 11, 12, 13, 14, 15, 16, 20, 21, 23, 24, 28, 29, 30, 31, 32, 33, 34, 40]
23 4%6%5*7+6 [2, 4, 5, 6, 7, 8, 9, 12, 13, 19, 21, 23, 24, 26, 29, 31, 32, 33, 34, 37, 38, 39, 40]
23 5%6%4*7+6 [2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 25, 26, 29, 31, 33, 34, 37, 38, 39, 40]
23 5%6%4*8+6 [1, 3, 5, 6, 8, 9, 10, 12, 14, 15, 18, 22, 24, 25, 27, 29, 30, 32, 34, 36, 37, 39, 40]

24 1%1 8 2+3 [2, 3, 4, 5, 6, 7, 9, 12, 13, 15, 16, 18, 19, 20, 21, 22, 24, 28, 29, 32, 33, 36, 38, 39]

ক্রাঞ্চিংয়ের জন্য আমি যে প্রোগ্রামটি ব্যবহার করেছি তা নীচে। পারি / জিপি-র স্ট্রিং প্রসেসিং ক্ষমতা সীমাবদ্ধ রয়েছে, তাই মূলত চর অ্যারে (ওরফে Vecsmall) নিয়ে কাজ করুন। অপারেটার পরীক্ষিত +, -, *, \(মেঝে DIV আছে), %, ;(অভিব্যক্তি বিভাজক মূলত পরিত্যাগ এটা আগে সবকিছু), এবং (স্থান, উপরে বর্ণিত হিসাবে)। এক্সপোনেন্ট অপারেটরটিও যুক্ত করা ^যেতে পারে তবে নিখরচায় পরীক্ষা করা খুব ধীর হয়ে যায়।

perms = {[
  [1, 2, 3, 6, 5, 4, 7, 8, 9], [1, 2, 3, 6, 9, 8, 5, 4, 7], [1, 2, 3, 6, 9, 8, 7, 4, 5], [1, 2, 5, 4, 7, 8, 9, 6, 3],
  [1, 4, 5, 2, 3, 6, 9, 8, 7], [1, 4, 7, 8, 5, 2, 3, 6, 9], [1, 4, 7, 8, 9, 6, 3, 2, 5], [1, 4, 7, 8, 9, 6, 5, 2, 3],
  [3, 2, 1, 4, 5, 6, 9, 8, 7], [3, 2, 1, 4, 7, 8, 5, 6, 9], [3, 2, 1, 4, 7, 8, 9, 6, 5], [3, 6, 5, 2, 1, 4, 7, 8, 9],
  [3, 6, 9, 8, 5, 2, 1, 4, 7], [3, 6, 9, 8, 7, 4, 1, 2, 5], [5, 4, 1, 2, 3, 6, 9, 8, 7], [5, 6, 3, 2, 1, 4, 7, 8, 9],
  [5, 8, 7, 4, 1, 2, 3, 6, 9], [5, 8, 9, 6, 3, 2, 1, 4, 7], [7, 4, 1, 2, 3, 6, 5, 8, 9], [7, 8, 5, 4, 1, 2, 3, 6, 9],
  [9, 8, 7, 4, 5, 6, 3, 2, 1], [7, 4, 5, 8, 9, 6, 3, 2, 1], [5, 4, 7, 8, 9, 6, 3, 2, 1], [3, 6, 9, 8, 7, 4, 5, 2, 1],
  [7, 8, 9, 6, 3, 2, 5, 4, 1], [9, 6, 3, 2, 5, 8, 7, 4, 1], [5, 2, 3, 6, 9, 8, 7, 4, 1], [3, 2, 5, 6, 9, 8, 7, 4, 1],
  [7, 8, 9, 6, 5, 4, 1, 2, 3], [9, 6, 5, 8, 7, 4, 1, 2, 3], [5, 6, 9, 8, 7, 4, 1, 2, 3], [9, 8, 7, 4, 1, 2, 5, 6, 3],
  [7, 4, 1, 2, 5, 8, 9, 6, 3], [5, 2, 1, 4, 7, 8, 9, 6, 3], [7, 8, 9, 6, 3, 2, 1, 4, 5], [9, 8, 7, 4, 1, 2, 3, 6, 5],
  [9, 6, 3, 2, 1, 4, 7, 8, 5], [7, 4, 1, 2, 3, 6, 9, 8, 5], [9, 8, 5, 6, 3, 2, 1, 4, 7], [9, 6, 3, 2, 1, 4, 5, 8, 7]
]}

ops = Vecsmall("+-*\\%; ")

ms = 1

for(c = 48, 57, {
 for(d = c, 57,
  for(f = d, 57,
   for(g = c, 57,
    for(e = 48, 57,
     print1(Strchr([c,d,e,f,g,13]));
     for(h = 1, #ops,
      for(i = 1, #ops,
       for(j = 1, #ops,
        for(k = 1, #ops,
         a = Vecsmall([c, ops[h], d, ops[i], e, ops[j], f, ops[k], g]);
         s = Set();
         for(m = 1, #perms,
          v = Strchr(vecextract(a, perms[m]));
          iferr(b = eval(v), E, b = 0);
          if(b >= 1 && b <= 40, s = setunion(s, [b]))
         );
         if(#s >= ms, ms = min(23, #s); print(#s, " ", Strchr(a), " ", s));
        )
       )
      )
     )
    )
   )
  )
 )
})

হায়, একটি পার্ল প্রোগ্রাম তার শেষ মান আউটপুট দেয় না। একটি পার্ল সাবরুটিন রয়েছে, তবে একটি সাবরুটিনের ধনুর্বন্ধনী রয়েছে। ( "স্বাক্ষর একটি সাবরুটিনের দেহের অংশ
msh210

29

ডেডফিশ , 18

ইনফিক্স অপারেটরদের বিবেচনা করার আগে এটিই প্রথম আমি চেষ্টা করেছিলাম। ডেডফিশ যে কোনও কিছুর জন্য উপকারী হতে পারে এই ধারণার নিখুঁত উচ্ছলতার জন্য আমি এখন এটি পোস্ট করছি।

iii
ios
sii

যারা Deadfish জানি না জন্য, i, বৃদ্ধি sবর্গ এবং o, আউটপুট সঁচায়ক 0 থেকে শুরু সঙ্গে (এছাড়াও আছে একটি 4th নির্দেশ এর dএখানে ব্যবহার করা হ্রাস জন্য)। আমাদের কাছে স্বয়ংক্রিয় মুদ্রণ নেই এবং এটি ব্যবহারের প্রয়োজনের oবিষয়টি একটি বড় অসুবিধা, তবে আশ্চর্যজনকভাবে ডেডফিশ এখানে খুব ভয়ঙ্করভাবে করেন না, সমস্ত বিষয় বিবেচনা করা হয়। দেখা যাচ্ছে যে আউটপুট অপারেটরের সর্বোত্তম প্লেসমেন্টটি মাঝখানে রয়েছে।

iiisoisii 9
iiisiiois 11
iiisiisio 122
iioisiisi 2
iioiisiis 2
iisioiisi 5
iisiisiio 38
iisiisoii 36
iiiiosiis 4
iiiisiosi 17
iiiisiiso 324
isoiiisii 1
isiioiiis 3
isiisiiio 12
oiiiisiis 0
osiiiisii 0
oisiiiisi 0
oiisiiiis 0
siiiisoii 16
sioiiiisi 1
iisiosiii 5
sioiisiii 1
oisiisiii 0
isiisioii 10
siisiioii 6
isiioisii 3
oiisiisii 0
iiosiisii 2
siisoiiii 4
isoisiiii 1
osiisiiii 0
iisiiiosi 7
siiioiisi 3
oiiisiisi 0
siisiiiio 8
iisiiiiso 64
isiiiisio 26
siiiisiio 18
iiosiiiis 2
isiiiiois 5

25

পাইথন আরপিএল এবং আরও অনেকগুলি, 22 23

6+7
*5%
6%4

মূল পর্যবেক্ষণ: আপনি যদি গ্রিডটিকে একটি চেকবোর্ডের মতো রঙ করেন তবে পথটি গ্রিডের বর্ণগুলিতে যেমন পরিবর্তন হয় একইভাবে শুরু হয় এবং একই রঙে শেষ হয়।

এখনও আরও ভাল জন্য জোর জোর। দুর্ভাগ্যক্রমে +*%(এবং এমনকি **ভাষা যেখানে ^ক্ষতিকারক ভাষা রয়েছে ) দিয়ে চেষ্টা করার চেয়ে ভাল কিছু আর পরিণত হয়নি। আমি বিটওয়াইজ অপারেটরগুলিতেও ছুঁড়ে ফেলার চেষ্টা করেছি এবং কেবল ^(এক্সওর) হালকাভাবে সহায়তা করেছে বলে মনে হয়েছিল, তবে অনুসন্ধানটি খুব বেশি সময় নিয়েছে তাই আমি ছেড়ে দিয়েছি।

6+7%5*6%4 6
6+7%4%5*6 24
6+7%4%6*5 21
6+5*6%4%7 8
6*5+7%4%6 33
6*6%5+7%4 4
6*6%4%7+5 5
6*6%4%5+7 7
7+6*5%4%6 9
7+6*6%5%4 8
7+6*6%4%5 7
7%5+6*6%4 2
7%4%5+6*6 39
7%4%6*6+5 23
5*6+7%4%6 33
5%7+6*6%4 5
5%6*6+7%4 33
5%4%7+6*6 37
6*6+7%5%4 38
6%5*6+7%4 9
4%6*5%7+6 12
6*5%4%7+6 8
5*6%4%7+6 8
7%4%6*5+6 21
6%4%7+5*6 32
4%7+5%6*6 34
5+7%4%6*6 23
7+5%4%6*6 13
6%4%5*6+7 19
4%5%6*6+7 31
5%4%6*6+7 13
4%6*6+5%7 29
6*6+5%4%7 37
5+6*6%4%7 5
6%4%7+6*5 32
4%6*6+7%5 26
4%7+6*6%5 5
6*6+7%4%5 39
4%5%7+6*6 40
4%7+6*5%6 4

5
পরবর্তী কাজ: এমন একটি প্রোগ্রাম লিখুন যা সর্বাধিক অনন্য মান সহ প্রোগ্রাম উত্পন্ন করে। তারপর গল্ফ যে প্রোগ্রাম। :)
রেটো কোরাডি

@ রিটোকোরাদি প্রথম অংশটি আমি যা করেছি। দ্বিতীয় ... পরে: পি
স্প 3000

@ Sp3000 আমি সমাধানের এই শৈলীতে জোর করে চাপিয়ে শেষ করেছি। আছে 6+7*5%6%4, 6+7*4%6%5এবং 6+8*4%6%5(ডান, নিচ বাম), এবং অন্য কিছুই।
ইসাকাক

1
@ আইসএইসিএজি আরও 23-পয়েন্ট সমাধান রয়েছে যদি আপনি আরও কিছু অপারেটর ফেলে রাখেন, যেমন & & ^
স্পার

শুধু একটি র্যান্ডম চিন্তা: আপনি যার ফলে চেষ্টা করেছি +এবং -কোণে / কেন্দ্রে? যেহেতু তারা অবিচ্ছিন্ন পাশাপাশি বাইনারি অপারেটর, তারপরেও সমস্ত বৈধ এক্সপ্রেশনগুলির ফলাফল হওয়া উচিত। অসম্ভব যে এটির আরও ভাল সমাধান হতে পারে তবে অন্তত এটি অনুসন্ধানের স্থানটি প্রসারিত করে। হুম, আসলে এটি সমস্যা হতে পারে কারণ আপনি অপারেটরগুলির ক্রম দিয়ে শেষ করতে পারেন।
রেটো কোরাাদি

13

জে, 15

2 + 1
* 3 *
2 + 3

এটি কেবল বৈধ সংখ্যাগুলি আউটপুট করে তবে অনেকগুলি সদৃশ হয়। অনন্য মূল্যবোধগুলি 17 11 16 28 31 23 13 10 21 33 18 24 22 29 27। অপারেটর এবং জড়িত পূর্ণসংখ্যার পরিবর্তন করে আপনি অবশ্যই আরও ভাল করতে পারবেন।

2+1*3*2+3 -> 17
2+1*3+3*2 -> 11
2+1*3+2*3 -> 11
2+3*2+3*1 -> 17
2*3+1*3+2 -> 16
2*2+3+1*3 -> 16
2*2+3*1+3 -> 28
2*2+3*3+1 -> 28
1+2*3*3+2 -> 31
1+2*2+3*3 -> 23
1+2*2+3*3 -> 23
1*3+2*2+3 -> 13
1*3+3+2*2 -> 10
1*3+2*2+3 -> 13
3*2+1*3+2 -> 21
3*1+2*2+3 -> 33
3+2*2+1*3 -> 13
3+3*1+2*2 -> 18
2*2+1*3+3 -> 16
2+3*2+1*3 -> 17
3+2*3*1+2 -> 21
2*3+3*1+2 -> 24
3*2+3*1+2 -> 33
1*3+2*3+2 -> 13
2+3*1+3*2 -> 23
3*1+3+2*2 -> 24
3+1*3+2*2 -> 10
1+3*3+2*2 -> 22
2+3*3*2+1 -> 29
3*3+2*2+1 -> 27
3*3+2*2+1 -> 27
3+2*2+3*1 -> 13
2*2+3+3*1 -> 16
3+2*2+3*1 -> 13
2+3*1+2*3 -> 23
3+2*2+1*3 -> 13
3*1+2*2+3 -> 33
2*2+1*3+3 -> 16
3+3*1+2*2 -> 18
3*1+2*3+2 -> 33

যাইহোক, 1 কে প্রতিনিধিকে আঘাত করার জন্য অভিনন্দন! :)
অ্যালেক্স এ।

@AlexA। জোল উত্তরে 1 কে আঘাত করা, প্রোলোগ উত্তর ছাড়া আর কিছুই নয়। অবিশ্বস্ত ...
ফ্যাটালাইজ করুন

8
এটা ঠিক আছে, আমি নিশ্চিত যে প্রোলোগ বুঝতে পারবেন।
অ্যালেক্স এ।

3
@AlexA। Yes
জন ডিভোরাক

@ জনডভোরাক আপনি প্রোলগের পক্ষে কথা বলছেন?
অ্যালেক্স এ।

11

> <>, 36 *

আপনি যদি যথেষ্ট ভাগ্যবান হন!

x;x
lxl
xnx

যেহেতু চ্যালেঞ্জটির জন্য কোডটি নির্বিচারে আবশ্যক নয়, কেবলমাত্র আমাদের প্রমাণ করতে হবে যে এটি সম্ভব (অসম্ভব হলেও) 36 নম্বর ফেরত দেওয়া এবং আমাদের কাজ শেষ হয়ে গেছে। আমার মনে হয়েছিল এটি স্থায়ী হয়েছিল।

(যারা <> সাথে পরিচিত নন তাদের পক্ষে এখানে একটি দুর্দান্ত পরিচয় পাওয়া যাবে )

> <> হ'ল স্ট্যাক-ভিত্তিক 2 ডি ভাষা। এর অর্থ হ'ল নির্দেশগুলি বেশিরভাগ traditionalতিহ্যবাহী ভাষার মতোই রৈখিকভাবে কার্যকর করা হয় না - প্রোগ্রামের প্রবাহ উপরে, নীচে, বাম বা ডান হতে পারে!

আমি> <> তে "x" নির্দেশ ব্যবহার করার সিদ্ধান্ত নিয়েছি, যা নির্দেশের নির্দেশকের দিকটি এলোমেলোভাবে উপরের, নীচে, বাম বা ডানদিকে পরিবর্তন করে। যেহেতু আমাদের কোডটি কেবল একটি লাইন হবে, এর অর্থ হ'ল আমরা কেবল তখন কেসগুলি ডান বা বাম দিকে যেতে পারি কেবল সেদিকেই যদি পয়েন্টারটি উপরে বা নীচে যায় তবে এটি আবার "এক্স" নির্দেশকে আঘাত করবে।

"এন" নির্দেশাবলী স্ট্যাকের শীর্ষে নম্বরটি পপ করে এবং মুদ্রণ করে। তবে যদি স্ট্যাকটি খালি থাকে এবং পপ করার মতো কিছু না থাকে তবে একটি ত্রুটি উত্থাপিত হয়।

"এল" নির্দেশাবলী স্ট্যাকের উপরে স্ট্যাকের দৈর্ঘ্যটি কেবল ধাক্কা দেয় (এবং আমাদের জন্য ভাগ্যবান এটি স্ট্যাকটি ফাঁকা থাকলে কোনও ত্রুটি প্রেরণ করে না), উদাহরণস্বরূপ যদি স্ট্যাকটি খালি থাকে এবং "এল" বলা হত, এটি 0 টি স্ট্যাকের দিকে ধাক্কা দেবে। যদি আমরা এখন আবার "এল" ডাকি, তবে স্ট্যাকের যেহেতু একটি উপাদান (0) রয়েছে তাই এটি 1 টি স্ট্যাকের শীর্ষে ঠেলে দেবে এবং এখন এর অর্থ দাঁড়াবে যে স্ট্যাকের উপরে দুটি জিনিস থাকবে এবং তার অর্থ এই হবে would যদি আমরা আবার "এল" কল করতে পারি, আমরা স্ট্যাকের উপর 2 টি চাপবো ইত্যাদি So

দ্য ";" নির্দেশনা প্রোগ্রাম শেষ করে।

"এক্স" ব্যবহার করে ধারণাটি হ'ল, উদাহরণস্বরূপ যদি কোডটিতে কেবল একটি "এক্স" থাকত (যেখানে এ, বি, সি, ডি কিছু নির্দেশ রয়েছে):

ABCx;D

প্রোগ্রামটি তখন এ বি বি এর পরে সি কার্যকর করে এবং "এক্স" পৌঁছানোর পরে আমাদের দুটি সম্ভাব্য লোক থাকত: কোডটি হয় ডানদিকে যেতে থাকে এবং "টিপে"; " এবং প্রস্থান করে বা এটি বামে যায় এবং সি এর পরে B এবং A এর পরে D কার্যকর করে এবং তারপরেই বের হয়। সুতরাং যদি আমাদের কোডটিতে একটি "এক্স" থাকে, প্রোগ্রামটি দুটি সম্ভাব্য প্রোগ্রাম প্রবাহ লাভ করে যার থেকে আমরা সবচেয়ে উপযুক্ত প্রোগ্রামটি চয়ন করতে পারি।

আমি সেখানে দু'একটি বা তার বেশি "এক্স" এসএসএস করছি তারপর আমরা অসীম সংখ্যক সম্ভাব্য প্রোগ্রাম প্রবাহ লাভ করি।

আমাদের কোডটিতে পাঁচটি "এক্স" এস রয়েছে, ফিউটারমোর তাদের প্রত্যেকটি হ্যামিলটোনীয় পাথের একটি "শুরুর সেল" এ থাকে যার অর্থ প্রতিটি প্রোগ্রাম একটি "এক্স" দিয়ে শুরু হবে এবং প্রতিটি প্রোগ্রামের কাঠামো থাকবে:

xAxBxCxDx

যেখানে A, B, C, D to এর অন্তর্গত; , n, l, l} এর অর্থ হল যে কেবল 12 টি অনন্য প্রোগ্রাম রয়েছে। তবুও যেহেতু আমরা সর্বদা একটি "এক্স" শুরু করি, প্রোগ্রামটি চলে গেলে আমরা কেসটি দেখতে পারি, সুতরাং এইভাবে প্রতিসামগ্রী প্রোগ্রামগুলিও একই হিসাবে বিবেচিত হতে পারে। প্রতিসাম্য পর্যন্ত কেবলমাত্র 6 টি বিভিন্ন বিভিন্ন কার্যকরী প্রোগ্রাম রয়েছে। তাদের মধ্যে কেবল 4 টি হ্যামিল্টোনীয় পাথ হিসাবে উত্পন্ন প্রোগ্রামগুলিতে ঘটে:

xnxlxlx;x
xlxnxlx;x
xnxlx;xlx
xlxnx;xlx

আসুন প্রথম প্রোগ্রাম "xnxlxlx; x" দেখুন যদি আমরা ঠিক প্রথম ধাপে প্রিন্ট কমান্ডটি চাপি যা একটি ত্রুটি বাড়িয়ে তুলবে যেহেতু আমাদের স্ট্যাকের কিছু নেই। যদি আমরা বামে চলে যাই তবে আমরা শেষ প্রোগ্রাম কমান্ডটি হিট করি। সুতরাং আমরা এই প্রোগ্রামগুলি থেকে কোনও সংখ্যা আউটপুট করতে পারি না

"এক্সএলএক্সএনএক্সএলএক্স; এক্স" দ্বিতীয় প্রোগ্রামটি অনেক বেশি আশাবাদী, যেহেতু ডানদিকে যাওয়ার পরে শূন্যটি স্ট্যাকের উপরে রাখা হয়, যদি আমরা পরের "এক্স" এ বামে চলে যাই তবে আমাদের স্ট্যাকটি একটি লাভ করে, ডান আবার যেতে আমাদের একটি 2 আছে যা আমরা তখন মুদ্রণ করতে পারি এবং প্রোগ্রামটি শেষ করতে ডানদিকে যেতে পারি। আমরা পর্যবেক্ষণ করতে পারি যে আমরা আসলে যে কোনও সংখ্যক মুদ্রণ করতে পারি , যেহেতু শুরুতে "xlx" অংশে আমরা ডানদিকে বামে এবং পরে আবার একটি নির্দিষ্ট সংখ্যক বারের মাধ্যমে নির্বিচার আকারে পৌঁছাতে পারি।

তাত্ক্ষণিকভাবে এটি দেখা যায় যে তৃতীয় প্রোগ্রাম xnxlx; xlx শুরুতে বাম দিকে এবং তারপরে "এক্সএলএক্স" রুটিন পুনরাবৃত্তি করে যে কোনও বিজোড় সংখ্যা আউটপুট করতে পারে কেবল ডানদিকে বামদিকে then

এবং চতুর্থ প্রোগ্রামটি মূলত দ্বিতীয় প্রোগ্রামের সমান এবং যে কোনও সংখ্যাকে আউটপুটও করতে পারে

সুতরাং প্রয়োজনীয় প্রোগ্রামগুলির জন্য আমাদের রয়েছে:

x;xlxlxnx (none)
x;xlxnxlx (any even number)
x;xlxnxlx (any even number)
x;xlxnxlx (any even number)
xlx;xlxnx (any odd number)
xlxnx;xlx (any even number)
xlxnxlx;x (any even number)
xlxnxlx;x (any even number)
x;xlxlxnx (none)
x;xlxnxlx (any even number)
x;xlxnxlx (any even number)
xlx;xlxnx (any odd number)
xlxnx;xlx (any even number)
xlxnxlx;x (any even number)
xlx;xlxnx (any odd number)
xlx;xlxnx (any odd number)
xnxlx;xlx (any odd number)
xnxlx;xlx (any odd number)
xlx;xlxnx (any odd number)
xnxlx;xlx (any odd number)
xnxlxlx;x (none)
xlxnxlx;x (any even number)
xlxnxlx;x (any even number)
xlxnxlx;x (any even number)
xnxlx;xlx (any odd number)
xlx;xnxlx (any even number)
x;xlxnxlx (any even number)
x;xlxnxlx (any even number)
xnxlxlx;x (none)
xlxnxlx;x (any even number)
xlxnxlx;x (any even number)
xnxlx;xlx (any odd number)
xlx;xnxlx (any even number)
x;xlxnxlx (any even number)
xnxlx;xlx (any odd number)
xnxlx;xlx (any odd number)
xlx;xlxnx (any odd number)
xlx;xlxnx (any odd number)
xnxlx;xlx (any odd number)
xlx;xlxnx (any odd number)

এটি 4 টি প্রোগ্রাম যা আউটপুট সংখ্যাগুলি ক্যান্ট করতে পারে না, 20 যে কোনও সংখ্যার আউটপুট দিতে পারে, 16 যে কোনও বিজোড় সংখ্যা আউটপুট করতে পারে। যেহেতু 1 থেকে 40 ব্যাপ্তিতে ঠিক 20 টি সংখ্যার এবং কমপক্ষে 16 বিজোড় সংখ্যা রয়েছে, তবে একটি নির্দিষ্ট সম্ভাবনার সাথে এই কোড ব্লকটি 1 থেকে 40 আউটপুটে 36 টি বিভিন্ন সংখ্যার উপস্থিতি থাকার সম্ভাবনা রয়েছে।


11
কার্যকরভাবে
ছাঁটাইয়ের

কখনও কখনও আমি চাই মাছ "স্ট্যাক এবং প্রস্থান উপর শেষ জিনিস মুদ্রণ" জন্য একটি নির্দেশনা ছিল যে একটি বিশাল সাহায্য করবে। আমার খুব শীঘ্রই একটি সম্পূর্ণ অনুকূল
লুফোল

আমি নির্দ্বিধামুক্ত প্রোগ্রামগুলি গণনা না করার বিষয়ে একটি নিয়ম যুক্ত করতে ভুলে গিয়েছি। আমি এখন এটি যোগ করেছি। আপনি এটি বজায় রাখার জন্য স্বাগত জানাই কারণ এটি চতুর এবং ভালভাবে ব্যাখ্যা করা হয়েছে, তবে আমি এই উত্তরটি গ্রহণ করব না।
ক্যালভিনের শখ 17

1
নিশ্চিত বিষয়, এই উত্তরটি যাইহোক প্রতিযোগিতামূলক উত্তর হওয়ার উদ্দেশ্য ছিল না, যখন আমি এই চ্যালেঞ্জটি পড়ছিলাম এবং কোনও মাছের উত্তর থাকার কথা ভাচ্ছিলাম তখন এটি হাঁটু-ঝাঁকুনির প্রতিক্রিয়া বেশি ছিল।
সির্পিস

9

গল্ফস্ক্রিপ্ট, ৮

192
6#7
281

বর্তমানে সর্বাধিক স্কোরিং সমাধান। : পি দীর্ঘ ছিল যখন এটি স্থায়ী ছিল।

প্রোগ্রাম

1927#6281 1927
192718#62 192718
19271826# 19271826
19#628172 19
16#927182 16
1628#9271 1628
16281729# 16281729
162817#92 162817
2916#7182 2916
291628#71 291628
29162817# 29162817
27#916281 27
2718#9162 2718
27182619# 27182619
#61927182 
#72916281 
#82619271 
#81729162 
261927#81 261927
28#619271 28
1826#7291 1826
26#817291 26
#62817291 
271826#91 271826
281729#61 281729
1729#8261 1729
#92718261 
29#718261 29
2817#6192 2817
17#826192 17
#71826192 
182619#72 182619
2619#8172 2619
#91628172 
28172916# 28172916
18261927# 18261927
17291628# 17291628
26192718# 26192718
18#729162 18
172916#82 172916

1
এটা চলেছিল যখন ... 30 মিনিটের জন্য ..
অপ্টিমাইজার

2
গল্ফস্ক্রিপ্টের জন্য আমি যে সেরাটি খুঁজে পেতে পারি তা 0)1#2#3(415 এ রয়েছে Beautiful
প্রিমো

1
@ প্রিমো: এতো চালাক। আমি ভাবিনি যে আরও মন্তব্যগুলি আসলে স্কোরকে উন্নত করবে।
ডেনিস

8

সিজেম, ১৪

3(4
;];
0)1

কাজের প্রোগ্রামগুলির নীচে:

3(4;];0)1 = 11
3(4;1)0;] = 22
3(];0)1;4 = 14
3;0)](4;1 = 11
3;0)1;4(] = 13
3;0)1;](4 = 14
4(3;];1)0 = 20
4(3;0)];1 = 1
4(3;0)1;] = 31
4;1)](3;0 = 20
4;1)0;3(] = 22
0;3(4;])1 = 21
0)];3(4;1 = 21
1)0;];4(3 = 33
4;1)0;](3 = 23
0)1;4(];3 = 3
1;4(])0;3 = 33
4(];1)0;3 = 23
0)1;];3(4 = 24
1)0;3(];4 = 4
0;3(])1;4 = 24
0)1;4(3;] = 13
1)0;3(4;] = 22
1;4(3;0)] = 31
0;3(4;1)] = 22
1)];4(3;0 = 30
1;4(3;])0 = 30

উত্পন্ন মানগুলি হ'ল: [1, 3, 4, 11, 13, 14, 20, 21, 22, 23, 24, 30, 31, 33]


এই কোডটি আপনি নিজে লিখেছেন? অথবা আপনি কোডের বিভিন্নতাগুলি পদ্ধতিগতভাবে গণনা এবং মূল্যায়ন করেছেন? আমি ভাবছিলাম যে ইনফিক্স সংকেতযুক্ত কোনও ভাষা এর জন্য অন্তর্নিহিত আরও ভাল হতে পারে, বা যদি স্ট্যাক ভিত্তিক গল্ফিং ভাষার সাহায্যে @ Sp3000 এর পদ্ধতিকে পরাজিত করা সম্ভব হয়?
রেটো কোরাাদি

@ রেটো আমি একটি প্রোগ্রাম লিখেছিলাম যা 4 টি সংখ্যার পরামিতিগুলির জন্য সমস্ত মান 0..9 ব্যবহার করে। আমি নিজেও কিছু অপারেটর পরিবর্তন করার চেষ্টা করেছি। স্ট্যাক ভিত্তিক ভাষার সমস্যাটি হচ্ছে বেশিরভাগ অপারেটরদের স্ট্যাকের জন্য 2 পরামিতি প্রয়োজন, এইভাবে আমাদের প্রচুর ত্রুটি রয়েছে। ইনফিক্স ভাষাগুলি তার পোস্টে স্প 3000 দ্বারা বর্ণিত পরীক্ষক কাঠামো থেকে উপকৃত হয়।
আর্নাউড

হ্যাঁ, আমি যখন মৌলিক পদ্ধতির বিষয়টি দেখলাম তখন আমার অনুভূতিটি ছিল ঠিক তাই। একটি সাধারণ লেআউট থাকা যা সমস্ত বৈধ এক্সপ্রেশন তৈরির গ্যারান্টিযুক্ত একটি বড় সুবিধা। সিজেমের একমাত্র সুবিধা হ'ল এতে আরও অনেকগুলি চিঠি অপারেটর রয়েছে।
রেটো কোরাাদি

5

ডিসি (20)

2+3
*p+
4+5
ABCFEDGHI -> 2+3+p*4+5 -> 5     $ **
ABCFIHEDG -> 2+3+5+p*4 -> 10    $ **
ABCFIHGDE -> 2+3+5+4*p -> 40    $ **
ABEDGHIFC -> 2+p*4+5+3 -> 2     $ **
ADEBCFIHG -> 2*p+3+5+4 -> 2       **
ADGHEBCFI -> 2*4+p+3+5 -> 6     $ **
ADGHIFCBE -> 2*4+5+3+p -> 14    $ **
ADGHIFEBC -> 2*4+5+p+3 -> 11    $ **
CBADEFIHG -> 3+2*p+5+4 -> 6       **
CBADGHEFI -> 3+2*4+p+5 -> 10      **
CBADGHIFE -> 3+2*4+5+p -> 15    $ **
CFEBADGHI -> 3+p+2*4+5 -> 3     $ **
CFIHEBADG -> 3+5+p+2*4 -> 8     $ **
CFIHGDABE -> 3+5+4*2+p -> 34    $ **
EDABCFIHG -> p*2+3+5+4 -> 
EFCBADGHI -> p+3+2*4+5 -> 
EHGDABCFI -> p+4*2+3+5 -> 
EHIFCBADG -> p+5+3+2*4 -> 
GDABCFEHI -> 4*2+3+p+5 -> 9     $ **
GHEDABCFI -> 4+p*2+3+5 -> 4     $ **
IHGDEFCBA -> 5+4*p+3+2 -> 20    $ **
GDEHIFCBA -> 4*p+5+3+2 -> 4       **
EDGHIFCBA -> p*4+5+3+2 -> 
CFIHGDEBA -> 3+5+4*p+2 -> 32    $ **
GHIFCBEDA -> 4+5+3+p*2 -> 12    $ **
IFCBEHGDA -> 5+3+p+4*2 -> 8       **
EBCFIHGDA -> p+3+5+4*2 -> 
CBEFIHGDA -> 3+p+5+4*2 -> 3       **
GHIFEDABC -> 4+5+p*2+3 -> 9       **
IFEHGDABC -> 5+p+4*2+3 -> 5       **
EFIHGDABC -> p+5+4*2+3 -> 
IHGDABEFC -> 5+4*2+p+3 -> 22    $ **
GDABEHIFC -> 4*2+p+5+3 -> 6       **
EBADGHIFC -> p+2*4+5+3 -> 
GHIFCBADE -> 4+5+3+2*p -> 24    $ **
IHGDABCFE -> 5+4*2+3+p -> 25    $ **
IFCBADGHE -> 5+3+2*4+p -> 20      **
GDABCFIHE -> 4*2+3+5+p -> 14      **
IHEFCBADG -> 5+p+3+2*4 -> 5       **
IFCBADEHG -> 5+3+2*p+4 -> 16    $ **

32 আউটপুট, 20 টি আলাদা (একটি দিয়ে চিহ্নিত $)

2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 14, 15, 16, 20, 22, 24, 25, 32, 34, 40

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.