পাটিগণিত… টোক… টিক ... টোক


15

এই প্রশ্নটি আপনার কাছে এমন একটি গেম নিয়ে এসেছিল যা আমি দীর্ঘ ফোন মিটিংয়ে আটকে থাকতে চাই play

২৪ ঘন্টা ঘড়ি (00:00 থেকে 23:59 অবধি) থেকে যে কোনও দুটি সময় দেওয়া হয়েছে, কেবলমাত্র মৌলিক গাণিতিক ক্রিয়াকলাপের মধ্যে কতগুলি বৈধ গাণিতিক সমীকরণ তৈরি করা যেতে পারে?

ইনপুট: 24 ঘন্টা চক্রের বৈধ সময় উপস্থাপন করে দুটি চার অঙ্কের স্ট্রিং (কোনও কোলন নেই)।

উদাহরণ:

ইনপুট জন্য = 0000, 1300

03:26 produces: "0+3*2=6" and "03*2=6" etc.
11:10 produces quite a few, including: "1*1=1+0" and "1=1=1^0" and  "1=11^0" etc.
12:24 produces: "1/2=2/4" and "1=(2*2)/4" etc.

বৈধ ক্রিয়াকলাপগুলি হ'ল:

  • সংযোজন
  • বিয়োগ
  • গুণ
  • বিভাগ (ভাসমান পয়েন্ট)
  • exponentiation
  • গৌণিক

অন্যান্য অনুমোদিত প্রতীক

  • প্রথম বন্ধনী
  • সমান লক্ষণ

সংক্ষিপ্ততম কোড জিতেছে।

মন্তব্য

  • লক্ষ্য খুঁজে পেতে সংখ্যা দুই বার নয় বার যে সংখ্যার মধ্যে বৈধ অভিব্যক্তির ধারণ করে একটি বৈধ অভিব্যক্তি।
  • ইনপুট হিসাবে প্রদত্ত দুটি বার সময়ের সীমাতে অন্তর্ভুক্ত।
  • আপনি যেকোন উপায়ে অঙ্কগুলি গোষ্ঠীভূত করতে পারেন, সুতরাং "1223" "12 23" বা "1 2 23" বা "1 223" ইত্যাদি হতে পারে etc.
  • আপনি প্রয়োজন হিসাবে অনেক বন্ধনী ব্যবহার করতে পারেন।
  • আপনি একাধিক =চিহ্ন ব্যবহার করতে পারেন । উদাহরণস্বরূপ, সময়টির 11:11বৈধ এক্সপ্রেশন রয়েছে 1=1=1=1
  • প্রথমবার দ্বিতীয়বারের পরে যদি কালানুক্রমিকভাবে ঘটে, তবে সময়ের ব্যাপ্তিটি এমনভাবে মোড়ানো উচিত যেন পরের দিনটি অতিক্রম করে।
  • সংখ্যাগুলি তাদের মূল ক্রমে থাকতে হবে - আপনি অঙ্কগুলি পুনরায় অর্ডার করতে পারবেন না।
  • যখন ক্লাস্টারিং সংখ্যাগুলি হয় তখন শূন্যটি হ'ল একেবারে প্রথম অঙ্ক হতে পারে, সেই ক্ষেত্রে এগুলি উপেক্ষা করা হয় ("০৩০৩" হিসাবে ক্লাস্টার করা "০.০ 03" ৩ এর মান সহ মাত্র দুটি অঙ্ক)
  • আপনি মাইনাস চিহ্নটি অ্যানারি অবহেলা হিসাবে ব্যবহার করতে পারবেন না। সুতরাং, "12:01" "1-2 = - (01)" উত্পাদন করে না, তবে "1-2 = 0-1" উত্পাদন করে।
  • আপনি অঙ্কগুলিতে দশমিক পয়েন্ট যুক্ত করতে পারবেন না। সুতরাং, "12:05" "1/2 = 0.5" উত্পাদন করে না।
  • ফ্যাকটোরিয়ালগুলির কোনও শিকল নয় - একটি অঙ্কের পরে সর্বাধিক এক "!" অনুসরণ করা যেতে পারে, অন্যথায়, অন্যথায়, অনেক সময় অসীম সমাধান হতে পারে। প্রাক্তন: "5!" বৈধ তবে "5 !!" বৈধ নয়.


4
" বৈধ ক্রিয়াকলাপগুলি অন্তর্ভুক্ত " মনে হচ্ছে আপনি পরীক্ষার কেসগুলি যোগ করতে সক্ষম হবেন না। আপনি যদি " বৈধ ক্রিয়াকলাপগুলি " এ পরিবর্তন করে কিছু পরীক্ষার কেস যুক্ত করেন তবে এটি আরও ভাল প্রশ্ন হবে । শেষ পয়েন্টগুলি সম্পর্কে সুনির্দিষ্ট হওয়াও কার্যকর হবে: ইনপুটটির জন্য 0000 1300সমীকরণগুলি উত্পন্ন 0000এবং 1300গণনাতে অন্তর্ভুক্ত করা উচিত ?
পিটার টেলর

1
"1423" সংখ্যা দেওয়া হয়েছে, "1 + 4 = 2 + 3", "(1 + 4) = (2 + 3)", "(1 + 4) = 2 + 3" এবং "1 + 4 = (2) +3) "এক বা চারটি সমীকরণ হিসাবে গণনা করবেন? এবং ... "0000" এর সমস্ত সমীকরণ কী ? আমি প্রায় 100 টি সম্ভাবনা, বা আরও অনেক কিছু নিয়ে ভাবি ... এটি কি হতে পারে?
bobbel

2
অ্যানারি অপারেটর ব্যবহারে কি কোনও বিধিনিষেধ রয়েছে? বিধিগুলিতে এই জাতীয় বিধিনিষেধ অনুপস্থিত থাকলে, ঘটনাচক্রে বারবার প্রয়োগ করা যেতে পারে এবং এভাবে একটি নিখুঁত সমাধান অসম্ভব প্রমাণিত হতে পারে।
মাইকেল স্টারন

1
মাইকেল, এটি একটি দুর্দান্ত পর্যবেক্ষণ। ধাঁধাটির জন্য, আমি মনে করি আমি এটি "ডিজিট" প্রতি একটি ফ্যাকটোরিয়াল সীমাবদ্ধ করব, যদি তা বোঝা যায়। তার জন্য, 5! বৈধ কিন্তু 5 !! বৈধ নয়.
nobillygreen

উত্তর:


1

পাইথন 3, 363 অক্ষর

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

তবে, আমি চ্যালেঞ্জকে কেবলমাত্র বেসিক গণিত '+ - * /' ব্যবহার করতে এবং কোনও বন্ধনী ব্যবহার না করে।

a,b = input().split()
r=0
for time in [c for c in range(int(a),int(b)) if c/10%10<6]:
 t,*ts='%04d'%time
 e=[t]
 for d in ts:
  e=[(n+o+d,n+d)[o==' '] for o in ' -+*/=' for n in e]
 for h in [g for g in [e.split('=') for e in e if '='in e] if len(g)>1]:
  for k in h:
   try:
    if eval(h[0]) != eval(k):
     break
   except:
    break
  else:
   r+=1
print(r)

এই কোডগল্ফটিতে আমার সম্পূর্ণ কোড (আশা করি কিছু ব্যাখ্যাযোগ্য) আমার পেস্টবিনে পাওয়া যাবে ।

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