সীমাবদ্ধ ক্রিয়াকলাপগুলির সাথে গুণ করুন


44

একটা ব্যাপার 500 প্রতিনিধির বেসরকারী খয়রাত প্রহারের বর্তমান সর্বোত্তম উত্তর

লক্ষ্য

আপনার লক্ষ্যটি হ'ল গাণিতিক ক্রিয়াকলাপ এবং ভেরিয়েবল অ্যাসাইনমেন্টের কেবল খুব সীমিত সেট ব্যবহার করে দুটি সংখ্যা গুণ করা।

  1. সংযোজন x,y -> x+y
  2. পারস্পরিক x -> 1/x( বিভাগ নয়x,y -> x/y )
  3. নেগেশন x -> -x( বিয়োগ নয়x,y -> x-y , যদিও আপনি এটি দুটি অপারেশন হিসাবে করতে পারেন x + (-y))
  4. ধ্রুবক 1(অপারেশন দ্বারা উত্পাদিত ব্যতীত অন্য কোন ধ্রুবক অনুমোদিত নয় 1)
  5. পরিবর্তনশীল অ্যাসাইনমেন্ট [variable] = [expression]

স্কোরিং: মানগুলি ভেরিয়েবল aএবং থেকে শুরু হয় b। আপনার লক্ষ্য হ'ল যথাসম্ভব অপারেশন ব্যবহার করে তাদের পণ্যটি a*bপরিবর্তনশীলে সংরক্ষণ করা c। প্রতিটি ক্রিয়াকলাপ এবং অ্যাসাইনমেন্টের +, -, /, =জন্য একটি পয়েন্ট ব্যয় হয় (সমতুল্যভাবে, প্রতিটি ব্যবহার (1), (2), (3), বা (4))। ধ্রুবকগুলি 1বিনামূল্যে are সর্বাধিকতম পয়েন্ট সমাধান জয়। টাইব্রেক প্রথম পোস্ট।

ভাতা: আপনার অভিব্যক্তিটি "এলোমেলো" রিয়েলস aএবং এর জন্য গাণিতিকভাবে সঠিক হতে হবে b। এটি আর ২ এর পরিমাপ শূন্যের সাবসেটে ব্যর্থ হতে পারে , অর্থাৎ এমন একটি সেট a- bকার্টেসিয়ান বিমানে প্লট করা থাকলে কোনও অঞ্চল নেই । (এটির 0মত প্রকাশের পারস্পরিক ক্রিয়াকলাপের কারণে এটি সম্ভবত প্রয়োজন হতে পারে 1/a))

ব্যাকরণ:

এটি একটি । অন্য কোনও ক্রিয়াকলাপ ব্যবহার করা যাবে না। বিশেষত, এর অর্থ কোনও ফাংশন, শর্তসাপেক্ষ, লুপস বা অ-সংখ্যাগত ডেটা ধরণের নয়। অনুমোদিত ক্রিয়াকলাপগুলির জন্য এখানে একটি ব্যাকরণ (সম্ভাবনাগুলি পৃথক করে |)। একটি প্রোগ্রাম <statement>গুলি এর একটি ক্রম , যেখানে <statement>নিম্নলিখিত হিসাবে দেওয়া হয়।

<statement>: <variable> = <expr>
<variable>: a | b | c | [string of letters of your choice]
<expr>: <arith_expr> | <variable> | <constant>
<arith_expr>: <addition_expr> | <reciprocal_expr> | <negation_expr> 
<addition_expr>: <expr> + <expr>
<reciprocal_expr>: 1/(<expr>)
<negation_expr>: -<expr>
<constant>: 1

আপনি ঠিক এই ব্যাকরণে কোড পোস্ট করতে হবে না, যতক্ষণ না এটি স্পষ্ট হয় আপনি কী করছেন এবং আপনার অপারেশন গণনা সঠিক। উদাহরণস্বরূপ, যদি আপনি লিখতে পারেন a-bজন্য a+(-b)এবং দুটি অপারেশন হিসাবে এটি গণনা, বা সংক্ষিপ্ততা জন্য ম্যাক্রো নির্ধারণ করুন।

( বহুগুণ ছাড়া পূর্ববর্তী প্রশ্নটি বহুগুণ হয়েছিল , তবে এটি অপারেশনগুলির একটি অনেক লুজার সেটকে অনুমতি দিয়েছে allowed)


4
এটা কি সম্ভব?
Ypnypn

1
@Ypnypn হ্যাঁ, এবং নিশ্চিত করার জন্য আমি একটি উদাহরণ লিখেছি।
xnor

2
এটি এমন একটি চ্যালেঞ্জের মতো অনুভূত হয় যেখানে একটি অনুকূল সমাধান সন্ধানের সম্ভাবনা রয়েছে (একবার কোনও সমাধান পাওয়া গেলে)। তাহলে সেই ক্ষেত্রে টাই ব্রেকার কী?
মার্টিন এন্ডার

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

2
ঠিক আছে যেহেতু সবাই ভাবেননি যে আমার প্রতিশোধ আমার মতো মজাদার, তাই আমি এটি মুছে ফেলেছিলাম এবং এখানে মন্তব্য করেছি: শূন্য সেট সম্পর্কে পরিমাপের নিয়মটি খুব বুদ্ধিমানভাবে বেছে নেওয়া হয়নি কারণ যৌক্তিক সংখ্যাগুলি লেবেসোগের পরিমাপ সম্পর্কিত একটি পরিমাপ শূন্য সেট, আমি পরামর্শ দেব পরিবর্তে একটি নির্দিষ্ট শতাংশ ব্যবহার করে। (বা অন্য কোনও ধরনের) তবে আমি এই চ্যালেঞ্জের ধারণাটি সম্পূর্ণ পছন্দ করি!
flawr

উত্তর:


34

22 অপারেশন

itx = 1/(1+a+b)     #4
nx = -1/(itx+itx)   #4
c = -( 1/(itx + itx + 1/(1+nx)) + 1/(1/(a+nx) + 1/(b+nx)) ) #14

এটি অনলাইন চেষ্টা করুন!

অপসটি 10 ​​টি সংযোজন, 7 বিপরীতমুখী, 2 টি প্রত্যাখ্যান এবং 3 কার্য রয়েছে।

তো, আমি এটি কীভাবে পেলাম? আমি দুটি ডাবল-ডেকার ভগ্নাংশের যোগফলের আশাব্যঞ্জক চেহারা টেম্পলেট দিয়ে শুরু করেছি, এমন একটি মোটিফ যা পূর্ববর্তী বহু প্রচেষ্টায় হাজির হয়েছিল।

c = 1/(1/x + 1/y) + 1/(1/z + 1/w)

যখন আমরা এই পরিমাণটি সীমাবদ্ধ করি তখন x+y+z+w=0একটি সুন্দর বাতিল হয়, যা প্রদান করে:

c = (x+z)*(y+z)/(x+y),

যা একটি পণ্য রয়েছে। ( প্রথমটির ডিগ্রি 1 থাকার t*u/vচেয়ে এটি পাওয়া প্রায়শই সহজ t*u)

এই অভিব্যক্তিটি সম্পর্কে চিন্তা করার আরও একটি প্রতিসম উপায় আছে way বিধিনিষেধের সাথে x+y+z+w=0, তাদের মানগুলি p,q,rতাদের জোড়াওয়ালা অঙ্কের তিনটি পরামিতি দ্বারা নির্দিষ্ট করা হয় ।

 p = x+y
-p = z+w
 q = x+z
-q = y+w
 r = x+w
-r = y+z

এবং আমাদের আছে c=-q*r/p। সমষ্টি pজোড়া সংশ্লিষ্ট দ্বারা হর হচ্ছে হিসাবে আলাদা করা (x,y)এবং (z,w)ভেরিয়েবল যে একই ভগ্নাংশে হয়।

এই জন্য একটি চমৎকার অভিব্যক্তি cমধ্যে p,q,rকিন্তু দ্বিতল ভগ্নাংশ হয় x,y,z,wতাই আমরা আধুনিক পরিপ্রেক্ষিতে সাবেক প্রকাশ করতে হবে:

x = ( p + q + r)/2
y = ( p - q - r)/2
z = (-p + q - r)/2
w = (-p - q + r)/2

এখন, আমরা নির্বাচন করতে চাই p,q,rযে c=-q*r/pসমান a*b। একটি পছন্দ:

p = -4
q = 2*a
r = 2*b

তারপর, মান দ্বিগুণ qএবং rসুবিধামত মধ্যে আধলা করা হয়:

x = -2 + a + b
y = -2 - a - b
z =  2 + a - b
w =  2 - a + b

2একটি ভেরিয়েবল হিসাবে সংরক্ষণ tকরা এবং সমীকরণের জন্য এগুলিকে প্লাগ করা c24-op সমাধান দেয়।

#24 ops
t = 1+1   #2
c = 1/(1/(-t+a+b) + 1/-(t+a+b))  +  1/(1/(-b+t+a) + 1/(-a+b+t)) #1, 10, 1, 10

এখানে 12 টি সংযোজন, 6 বিপরীতমুখী, 4 টি প্রত্যাখ্যান এবং 2 কার্য রয়েছে।

পদক্ষেপে প্রকাশ করতে প্রচুর অপারেশন ব্যয় x,y,z,wহয় 1,a,b। অপস সংরক্ষণ করতে, পরিবর্তে প্রকাশ xমধ্যে p,q,r(এবং এইভাবে a,b,1) এবং তারপর লিখতে y,z,wপরিপ্রেক্ষিতে x

y = -x + p
z = -x + q
w = -x + r

নির্বাচন

p = 1
q = a
r = b

এবং আমরা cযেমন c=-q*r/pপেয়েছি তেমন একটি উপেক্ষার সাথে প্রকাশ করছি

x = (1+a+b)/2
y = -x + 1
z = -x + a
w = -x + b

দুর্ভাগ্যক্রমে, মধ্যে অর্ধেক xব্যয়বহুল। এটিকে উল্টিয়ে, ফলাফলটি নিজের মধ্যে যুক্ত করে এবং আবার বিবর্তিত করে কাজটি করা দরকার। আমরা উত্পাদন করতে আরো অস্বীকার nxজন্য -x, এটাই কি যেহেতু y,z,wব্যবহার। এটি আমাদের 23-ওপেন সমাধান দেয়:

#23 ops
itx = 1/(1+a+b)     #4
nx = -1/(itx+itx)   #4
c = -( 1/(1/(-nx) + 1/(1+nx))  +  1/(1/(a+nx) + 1/(b+nx)) ) #15

itx1 / (2 * x) এবং nxহয় -x। প্রকাশ করার একটি চূড়ান্ত অপ্টিমাইজেশান 1/xহিসাবে itx+itxপরিবর্তে টেমপ্লেট করা 1/(-nx)মধ্যেও একটি অক্ষর এবং 22 অপস সমাধান নিচে নিয়ে আসে।


21 টি অপারেশনে একটি সহজ অপ্টিমাইজেশন রয়েছে। itx + itxদুবার ঘটে, তবে itxঅন্য কোনও প্রসঙ্গে দেখা যায় না। পরিবর্তে সংজ্ঞা দিন ix = (1+1)/(1+a+b)এবং আপনি একটিতে দুটি সংযোজন প্রতিস্থাপন করুন।
পিটার টেলর

এবং m = -1এটি বের করে 20 পাওয়া সম্ভব:nx = (1+a+b)/(m+m); c = m/(m/nx + 1/(1+nx)) + m/(1/(a+nx) + 1/(b+nx))
পিটার টেলর

3
আহ, এই দুটি আশাবাদই ব্যর্থ হয়েছে কারণ সমর্থিত ক্রিয়াকলাপ বিভাজনের পরিবর্তে পারস্পরিক।
পিটার টেলর

যদি aএবং bশুধুমাত্র একটি পৃথক হয়, তবে হয় a + nx = 0বা হয় b + nx = 0, আপনার সমাধানকে শূন্য দ্বারা ভাগ করে দেয়।
মুসঅন দ্য রকস

1
@ মুসঅন দ্য রকস এটি ঠিক আছে, চ্যালেঞ্জের "ভাতা" দেখুন যে কোডটি একটি পরিমাপ-শূন্য সাবসেটে ব্যর্থ হতে পারে। আমি মনে করি চ্যালেঞ্জ অন্যথায় অসম্ভব।
xnor

26

23 অপারেশন

z = 1/(1/(1/(1/(a+1)+1/(b+1))-1+1/(a+b+1+1))-(1/a+1/b))
res = z+z

বিস্ফোরণ দ্বারা প্রমাণ:

z = 1/(1/(1/(1/(a+1)+1/(b+1))-1+1/(a+b+1+1))-(1/a+1/b))
             1/(a+1)+1/(b+1)                            == (a+b+2) / (ab+a+b+1)
          1/(1/(a+1)+1/(b+1))                           == (ab+a+b+1) / (a+b+2)
          1/(1/(a+1)+1/(b+1))-1                         == (ab - 1) / (a+b+2)
          1/(1/(a+1)+1/(b+1))-1+1/(a+b+1+1)             == ab / (a+b+2)
       1/(1/(1/(a+1)+1/(b+1))-1+1/(a+b+1+1))            == (a+b+2) / ab
                                              1/a+1/b   == (a+b) / ab
       1/(1/(1/(a+1)+1/(b+1))-1+1/(a+b+1+1))-(1/a+1/b)  == 2 / ab
    1/(1/(1/(1/(a+1)+1/(b+1))-1+1/(a+b+1+1))-(1/a+1/b)) == ab / 2

z = ab / 2 and therefore z+z = ab

আমি এই সুন্দর চিত্রটি পাওয়ার জন্য ওল্ফ্রাম আলফাকে গালি দিয়েছি (ওল্ফ্রাম আলফা আমাকে এটি সংরক্ষণের পক্ষে সাবস্ক্রাইব করার চেষ্টা করেছিল, তবে তারপরে ctrl-c ctrl-v ;-)):

স্কোর ( +বিয়োগফল যোগ করা সহ ):

z = ////++/++-+/++++-/+/
res = +

সংক্ষিপ্ত সমাধানের জন্য অভিনন্দন!
xnor

@xnor আমাকে আমার প্রথম গৃহীত উত্তর এবং আমার প্রথম অনুগ্রহ দেওয়ার জন্য ধন্যবাদ!
গর্বিত হাসেলেলার

নিট-পিক হতে হবে না, তবে ... (বি + 1)) - 1 + 1 ... এবং ... 1)) - (1 / এ + ... হতে হবে ... (খ + 1) )) + - 1 + 1 ... এবং ... 1)) + - (যথাক্রমে 1 / এ + ...?
tfitzger

@ টিফিটজার আমি মনে করি এটি সেভাবে সহজ। প্রশ্নটি বলছে যে এটি কোনও বিষয় নয়। দ্রষ্টব্য আমি স্কোরটি সঠিকভাবে গণনা করি (প্রতি বিয়োগফল দুটি হয়)
গর্বিত হাসেলেলার

ওল্ফ্রাম আলফার একটি 7 দিনের ফ্রি ট্রায়াল রয়েছে, ফাই।
ভূত_স_ই_কোড

13

29 অপারেশন

সেট for (a, b) ∈ R 2 | এর জন্য কাজ করে না a + b = 0 বা a + b = -1 বা ab = 0 বা ab = -1}} এটি সম্ভবত শূন্য পরিমাপ?

sum = a+b
nb = -b
diff = a+nb
rfc = 1/(1/(1/sum + -1/(sum+1)) + -1/(1/diff + -1/(diff+1)) + nb + nb)  # rfc = 1/4c
c = 1/(rfc + rfc + rfc + rfc)

# sum  is  2: =+
# nb   is  2: =-
# diff is  2: =+
# rfc  is 18: =///+-/++-//+-/+++
# c    is  5: =/+++
# total = 29 operations

rfcযদি আমরা ম্যাক্রো সংজ্ঞায়িত করি তবে (রসিপ্রোকাল-ফোর-সি) এর কাঠামো আরও স্পষ্ট:

s(x) = 1/(1/x + -1/(x+1))              # //+-/+ (no = in count, macros don't exist)
rfc = 1/(s(sum) + - s(diff) + nb + nb) # =/s+-s++ (6+2*s = 18)

গণিতটি করা যাক:

  • s(x), গাণিতিকভাবে, 1/(1/x - 1/(x+1))যা কিছুটা বীজগণিতের পরে x*(x+1)বা হয় x*x + x
  • আপনি যখন সমস্ত কিছু উপস্থাপন করেন তখন rfcএটি সত্য 1/((a+b)*(a+b) + a + b - (a-b)*(a-b) - a + b + (-b) + (-b))যা সঠিক 1/((a+b)^2 - (a-b)^2)
  • স্কোয়ার, বা শুধু প্লেইন সম্প্রসারণের পার্থক্য করার পরে, আপনি যে পেতে rfcহয় 1/(4*a*b)
  • অবশেষে, c4 বারের পারস্পরিক কাজ rfc, তাই 1/(4/(4*a*b))হয়ে যায় a*b

2
+1, আমি এই অভিন্ন গণনাটি শেষ করার মাঝামাঝি ছিলাম
এরিক ট্র্রেসার

1
এটি অবশ্যই শূন্য পরিমাপ; এটি লাইন একটি ইউনিয়ন।
xnor

লাইনগুলির ইউনিয়ন সম্পর্কে কোনও মন্তব্য করা হবে না ... @ অ্যালগরিদমশর্ক আপনি কীভাবে এই পরিচয়টি নিয়ে এসেছেন তা আমাদের আরও বলতে পারেন? কীভাবে সমস্যাটি প্রকাশ করলেন?
flawr

1
@ ফ্লোয়ার আমি স্মরণ করিয়ে দিয়েছিলাম যে s(x)ক্যালকুলাস থেকে প্রশ্নটির প্রয়োজনীয়তার সাথে সম্পর্কিত বৈশিষ্ট্য, যার অর্থ আমার একটি বর্গক্ষেত্র ছিল। কিছুটা ত্রুটিযুক্ত হওয়ার পরে, আমি খুঁজে পেয়েছি যে a*bস্কোয়ার ট্রিকের পার্থক্য সহ আমি একটি শব্দ পেতে পারি । আমার একবার এটি হয়ে গেলে কোন অ্যাসাইনমেন্টগুলি ক্রিয়াকলাপ সাশ্রয় করেছিল তা চেষ্টা করে দেখার বিষয়।
অ্যালগরিদমশর্ক

যেহেতু আপনি -1তিনবার ব্যবহার করেছেন rfc, আপনি কোনও চরিত্রকে ভেরিয়েবলের সাহায্যে গল্ফ দিতে পারেন না?
isaacg

9

27 অপারেশন

tmp = 1/(1/(1+(-1/(1/(1+(-a))+1/(1+b))))+1/(1/(1/b+(-1/a))+1/(a+(-b))))
res = tmp+tmp+(-1)

# tmp is 23: =//+-//+-+/++///+-/+/+-
# res is 4: =++-

এর পিছনে কোনও তত্ত্ব নেই। আমি শুধু পাওয়ার চেষ্টা (const1+a*b)/const2এবং দিয়ে শুরু (1/(1-a)+1/(1+b))এবং (-1/a+1/b)


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