তারিখ থেকে গণিতের সমীকরণ তৈরি করুন


19

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

আপনার প্রোগ্রামটি অনুরূপ কিছু করা উচিত। প্রোগ্রামটি বর্তমান তারিখটি আমদানি করবে এবং অপারেটরগুলিকে নিম্নলিখিত নিয়ম অনুসারে একটি অভিব্যক্তি মুদ্রণ করতে হবে।

  • অঙ্কগুলি ক্রমে ব্যবহৃত হতে হবে। অঙ্কগুলির পুনর্বিন্যাসের অনুমতি নেই।
  • ফলস্বরূপ প্রকাশটি অবশ্যই গাণিতিকভাবে নির্ভুল হওয়া উচিত।
  • যোগ, বিয়োগ, গুণ, বিভাজন, ক্ষয়ক্ষতি এবং প্রথম বন্ধনী ব্যবহারের অনুমতি দেওয়া হয়েছে allowed অঙ্কের সংমিশ্রণ হয়। তবে, সমস্ত অপারেশন প্রয়োজন হয় না। অঙ্ককে নেতিবাচক করতে আপনি বিয়োগ চিহ্নটি ব্যবহার করতে পারবেন না ( -1+1+11=1011 নভেম্বর, 2010 এর মতো)।
  • প্রোগ্রামটি একটি স্ট্যান্ডার্ড মেশিনে 60 সেকেন্ডের মধ্যে চালাতে হবে।

উদাহরণস্বরূপ, এই চ্যালেঞ্জটি 10 ​​নভেম্বর, 2015-এ লেখা হয়েছিল The প্রোগ্রামটি এটি 11/10/15 হিসাবে ব্যাখ্যা করবে। একটি নমুনা আউটপুট হবে (1+1)/10=1/5


বোনাসেস

আপনার প্রোগ্রামটি সমর্থন করে নিম্নলিখিত প্রতিটিটির জন্য আপনি আপনার কোডের বাইটের সংখ্যা ০.৯ দিয়ে গুণ করতে পারেন।

  • প্রোগ্রামটি নিউলাইন দ্বারা পৃথক করা যায় এমন সমস্ত সম্ভাব্য অভিব্যক্তি মুদ্রণ করে। অতিরিক্ত চিহ্নগুলির ক্রমবর্ধমান ক্রমে অভিব্যক্তিটি তালিকাভুক্ত করা হয় তবে অতিরিক্ত 0.95 দিয়ে গুণ করুন।
  • প্রোগ্রামটি এমএম / ডিডি / ওয়াইওয়াইওয়াই তারিখের জন্যও কাজ করে, সম্ভাবনা ছাড়াই বছরের প্রথম দুটি অঙ্ক সহ একটি সম্ভাবনা মুদ্রণ করে। এই বোনাসটি যদি প্রথম বোনাসের সাথে একত্রিত হয় তবে বছরের প্রথম দুটি অঙ্কের সাথে সমস্ত সম্ভাবনা মুদ্রিত করতে হবে।
  • প্রোগ্রাম যখন সেখানে একাধিক equalities, তাদের জন্য একটি সমীকরণ ছাপে (উদাহরণস্বরূপ, 11 নভেম্বর, 2011, 1=1=1=1=1=1যেমন সম্ভাবনার ছাড়াও মুদ্রিত হবে, 1*1=1=1=1=1, 1*1*1=1=1=1, এবং 1*1*1*1=1=1। সব ধরনের মামলা প্রিন্ট করা আবশ্যক জন্য প্রথম বোনাস অর্জন করতে হবে।
  • প্রোগ্রামটি 2 এবং 16 এর মধ্যে ঘাঁটিতে রূপান্তরকে সমর্থন করে Note মনে রাখবেন যে বেসটি 10 ​​না হলে, অভিব্যক্তির সমস্ত সংখ্যা অবশ্যই একই বেসে (Base b)লিখতে হবে , এবং অবশ্যই অভিব্যক্তির পরে লিখতে হবে ( bসেই অনুযায়ী প্রতিস্থাপন সহ )।

এটি কোড গল্ফ, সুতরাং মানক বিধি প্রযোজ্য। বাইটস মধ্যে সংক্ষিপ্ত কোড।


1
কোন অপারেশন অনুমোদিত?
anOKsquirrel

1
@ ফ্রাইআম দ্য এজিগম্যান এটিকে সদৃশ বলার মতো যথেষ্ট মিল আছে কি? আমি এটি ভেবে দেখিনি কারণ এই চ্যালেঞ্জটি একচেটিয়াভাবে একটি ডিজিট ব্যবহার করে না এবং মনে কোনও নির্দিষ্ট আরএইচএস নেই (কেবল সমতা)।
আর্কটরাস

17
ডিডি / এমএম / ওয়াইওয়াই> এমএম / ডিডি / ওয়াইওয়াই
orlp

3
আমি মনে করি আপনি যে প্রশ্নটি প্রকাশ করেছেন সেখানে আপনার প্রশ্নে সমীকরণটি ব্যবহার করতে চান (একটি অভিব্যক্তি সমীকরণের কেবল একটি দিক এবং তারপরে আপনার প্রশ্নটি সত্যই বোঝায় না)।
পাওলো ইবারম্যান

1
এটি কি কোনও নির্দিষ্ট তারিখের পক্ষে প্রমাণিত?
জাচ গেটস

উত্তর:


6

পাইথন 3, 424 420 369 363 বাইট

import time as t
r=range
x=len
d=list(t.strftime('%m%d%y'))
o=([[x,x+'(',x+')']for x in ['']+"+ - == * / **".split()])
n=[]
for l in o:
    n=l+n
o=n
for p in r(x(o)**(x(d)-1)):
    e=''
    for i in r(x(d)-1):
        e+=str(d[i])+o[(p//(x(o)**i))%x(o)]
    e+=str(d[-1])
    try:
        if eval(e)and e.find('=')!=-1:
            print(e.replace('==','=').replace('**','^'))
            break
    except:pass

ব্রুট সংখ্যায় ক্রিয়াকলাপের সমস্ত সম্ভাব্য সংমিশ্রণকে বাধ্য করে এবং যখন এটি পাওয়া যায় তখন থামে।

সম্পাদনা: সংরক্ষিত 4 বাইট @ ননওআইনি এখানে ধন্যবাদ

সম্পাদনা 2: সংরক্ষিত 51 (!) বাইট @ ভ্যালিউইঙ্ককে ধন্যবাদ


1
হ্যালো, এবং পিপিসিজিতে আপনাকে স্বাগতম! আপনি ইনলাইন করতে পারেন except:pass, এবং স্থানটি সরাতে পারেন [ (p//(len(o)**i))%len(o)]
নন ইনি এখানে

আপনি যদি বিভাগটি আমদানি করেন __future__তবে পাইথন 3 এ আপগ্রেড করা কি আপনার অবস্থার জন্য আরও ভাল কাজ করবে? এছাড়াও, আমি বুঝতে পারছি না যে আপনি oযখন অপারেটরগুলির সাথে-প্যারেনস-এর সাথে তালিকাগুলি তৈরি করছেন তখন আপনি কেন বিপরীত হন ।
মূল্য কালি

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

o=([[x,x+'(',x+')']for x in",+,-,==,*,/,**".split(',')])2 বাইটের জন্য
জোনাথন অ্যালান

1
@ জোনাথান অ্যালান হু এগুলি নির্দেশ করার জন্য ধন্যবাদ। আমি সময় পেলে কোডটির পুনরায় কাজ করব (সম্ভবত আগামীকাল)
থিও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.