ক্ষমতা তুলনা।


13

দুটি সংখ্যা এন 1 = একটি বি সি , এন 2 = ডি এফ একটি ফাংশন (এ, বি, সি, ডি, ই, ফ) তৈরি করে তুলনা করুন যে:

  • এন 1 > এন 2 হলে 1 প্রদান করে
  • এন 1 <এন 2 হলে -1 প্রদান করে

দ্রষ্টব্য: এন 1 এবং এন 2 এর মধ্যে অন্য কোনও সম্পর্কের জন্য আপনাকে কোনও মান ফেরত দিতে হবে না । উদাহরণস্বরূপ যখন তারা সমান হয় বা যখন তাদের সম্পর্কটি সংজ্ঞায়িত হয় (জটিল সংখ্যা)।

অন্যান্য বাধা:

  • সমস্ত সংখ্যা পূর্ণসংখ্যা হয়
  • a, b, c, d, e, f ধনাত্মক বা নেতিবাচক হতে পারে তবে শূন্য নয়।
  • | একটি |, | ঘ | <1000
  • | খ |, | গ |, | ই |, | চ | <10 10
  • চলমান সময় কয়েক সেকেন্ডের চেয়ে কম

উদাহরণ:

f(100,100,100,50,100,100) = 1
f(-100,100,100,50,100,100) = 1
f(-100,99,100,50,100,100) = -1
f(100,-100,-100, -1, 3, 100) = 1
f(535, 10^9, 10^8, 443, 10^9, 10^9) = -1

এটি কোড গল্ফ। সংক্ষিপ্ততম কোড জিতেছে।


3
তারা সমান হলে কি হবে, এটি 0 ফিরে উচিত? অথবা আপনি ধরে নিচ্ছেন যে এন 1 এন 2 এর সমান হবে এমন কোনও উপায় নেই?
জোনাথন এম ডেভিস

আমরা কি কিছু নমুনা ইনপুট / আউটপুট পেতে পারি?
ডগবার্ট

@ জোনাথন: আমি উদ্দেশ্য হিসাবে "সমান হওয়ার বিষয়টি" উল্লেখ করছি না। হিসাবে আপনি দয়া করে না. আপনি এমনকি ধরে নিতে পারেন যে তারা কখনও সমান নয়।
এলেভেক্স

@ ডগবার্ট: সম্পন্ন হয়েছে
ইয়েলেক্স

| খ |, | গ |, | ই |, | চ | <10 ^ 10 আপনার শেষ উদাহরণ বিপরীত বলে মনে হয়
ডঃ belisarius

উত্তর:


3

গণিত, ১১০ টি চর

z[a_,b_,c_,d_,e_,f_]:=With[{g=Sign[a]^(b^c),h=Sign[d]^(e^f)},If[g!=h,g,g*Sign[Log[Abs[a]]b^c-Log[Abs[d]]e^f]]]

আপনি সেখানে কোন ধরণের গণিত ব্যবহার করেন এবং এটি কাজ করতে আসলে কোন ম্যাজিক জাগরণ ব্যবহার করতে হয়? উপরেরটিকে গাণিতিক 8 তে রেখে দেওয়া মাত্র yield সিনট্যাক্স :: বিকেটওয়र्न: "জেড (এ_, বি_, সি_, ডি_, ই_, এফ_)" গুণকে উপস্থাপন করে; "z [a_, b_, c_, d_, e_, f_]" কোনও ফাংশন উপস্থাপন করতে ব্যবহার করুন «এবং nt সিনট্যাক্স :: sntxf:" z (a_ "অনুসরণ করা যায় না", বি_, সি_, ডি_, ই_, এফ_ ): = sgn (ln (অ্যাবস এ) বি ^ সি-এলএন (অ্যাবস ডি) ই ^ এফ)) "«
জয়ে

টেস্টকেস ব্যর্থ 3,-3,3,-4,1,1, যদি আমি পুরোপুরি ভুল না করি (এখানে ম্যাথমেটিকা ​​না থাকে তবে ওল্ফ্রাম আলফা একমত বলে মনে হয় )।
ভেন্টোরো

ঠিক আছে, এটি এখন কাজ করে z[a_,b_,c_,d_,e_,f_]:=Sign[Log[Abs[a]]b^c-Log[Abs[d]]e^f]যা আপনার কাছে যা আছে তার চেয়ে যথেষ্ট দীর্ঘ। আমি সম্ভবত এখানে কিছু মিস করছি।
জোয়ি

@ জো, আমার কাছে আসলে ম্যাথমেটিকা ​​নেই, তাই আমি ওল্ফ্রাম আলফা ইন্টারফেসের মাধ্যমে পরীক্ষা করছিলাম। দেখা যাচ্ছে এটি যা গ্রহণ করে তা অনেক বেশি উদার। আহ ভাল - অগ্রাধিকারটি হ'ল @ ভেন্টোরো যুক্তি সহ একটি বাগ সঠিকভাবে দেখায়।
পিটার টেলর 14

এটি কি "কয়েক সেকেন্ডেরও কম সময়ে চলবে" z[535, 10^9, 10^8, 443, 10^9, 10^9]?
এভেলেক্স

7

রুবি ১.৯, 280 227 189 171 টি অক্ষর

z=->a,b,c,d,e,f{l=->a{Math.log a}
u=->a,b{[a.abs,a][b&1]}
a=u[a,b=u[b,c]]
d=u[d,e=u[e,f]]
d*a<0?a<=>d :b*e<0?b<=>e :(l[l[a*q=a<=>0]/l[d*q]]<=>f*l[e*r=b<=>0]-c*l[b*r])*q*r}

আমি জানি যে এটি অন্যান্য সমাধানগুলির তুলনায় কিছুটা দীর্ঘ, তবে কমপক্ষে এই পদ্ধতির কোনও বি সি , ডি , বি সি বা ই f এর গণনা ছাড়াই কাজ করা উচিত ।

সম্পাদনা:

  • (279 -> 280) কখন a**b**c < 0এবং কখন একটি বাগ স্থির করে d = 1
  • (280 -> 227) একটি বিশেষ ক্ষেত্রে অপ্রয়োজনীয় চেক সরানো হয়েছে।
  • (227 -> 192) প্রদত্ত মানদণ্ডের সাথে প্রয়োজনীয় নয় এমন কিছু চেক সরানো হয়েছে (শূন্যহীন পূর্ণসংখ্যার, জটিল মানের জন্য কোনও আউটপুট প্রয়োজনীয় নয়)
  • (192 -> 189) অন্যান্য সমস্ত চেকের কারণে, আমি এর log(log(a)/log(d))পরিবর্তে নিরাপদে গণনা করতে পারি log(log(a))-log(log(d))
  • (189 -> 171) সমতুল্য সমস্যাগুলিকে একে অন্যকে রূপান্তর করার সরল উপায়।

Testcases:

z[100, 100, 100, 50, 100, 100] == 1
z[-100, 100, 100, 50, 100, 100] == 1
z[-100, 99, 100, 50, 100, 100] == -1
z[100, -100, -100, -1, 3, 100] == 1
z[535, 10**9, 10**8, 443, 10**9, 10**9] == -1
z[-1, -1, 1, 2, 2, 2] == -1
z[1, -5, -9, 2, -1, 2] == -1
z[1, -5, -9, 2, -1, 3] == 1
z[3, -3, 3, -4, 1, 1] == 1
z[-2, 1, 1, 1, 1, 1] == -1
z[1, 1, 1, -1, 1, 1] == 1
z[1, 1, 1, 2, 3, 1] == -1
z[1, 1, 1, 2, -3, 2] == -1
z[1, 1, 1, 2, -3, 1] == 1
z[-1, 1, 1, 1, 1, 1] == -1
z[2, 3, 1, 1, 1, 1] == 1
z[2, -3, 2, 1, 1, 1] == 1
z[2, -3, 1, 1, 1, 1] == -1

1

শর্টস্ক্রিপ্ট , 89 বাইট

{CP
$M^ η1 η2
$M^ ζ η3
↑Αζ
$M^ η4 η5
$M^ ζ η6
↔α>ζ↑Ζ1
↔α<ζ↑Ζ-1}

বাস্তবায়ন হুবহু বর্ণিত একটি নয়, তবে এটি কার্যকর হয়।

এই উত্তরটি প্রতিদ্বন্দ্বিতামূলক নয়, যেহেতু এই চ্যালেঞ্জের পরে শর্টস্ক্রিপ্ট প্রকাশিত হয়েছে।


0

পাইথন ২.6 (এটি আসলে কাজ করে না)

import cmath
g=cmath.log
f=lambda a,b,c,d,e,f:-1+2*((c*g(b)+g(g(a))-f*g(e)-g(g(d))).real>0)

আজ আমি শিখেছি পাইথনের একটি জটিল লগ ফাংশন রয়েছে। সুতরাং, অন্ধভাবে উভয় পক্ষের লগ এবং বাস্তব উপাদান তাকান। 5 টি পরীক্ষার মধ্যে 4 টির জন্য কাজ করে। চতুর্থটির সাথে কী হচ্ছে তা নিশ্চিত নয়।

print f(100,100,100,50,100,100) == 1
print f(-100,100,100,50,100,100) == 1
print f(-100,99,100,50,100,100) == -1
print f(100,-100,-100, -1, 3, 100) == 1 # failure, sadness.
print f(535, 10^9, 10^8, 443, 10^9, 10^9) == -1

ঠিক আছে, আমি উদাহরণটি ভুল করেছিলাম তা ভুল: / দুঃখিত ... এটি ঠিক করা হচ্ছে ...
এভেলেক্স

আমার কোডটি এখনও চতুর্থ উদাহরণের জন্য ভুল -১
ফেরায়

কেবল আসল অংশের তুলনা করা সঠিক নয়।
ইয়েলেক্স

হ্যাঁ, সেই অংশটি ছিল অন্ধকারে ছুরিকাঘাত। এই হল আমি কোথায় জটিল বিশ্লেষণ যে কোর্সে কুঁদন দু: খ প্রকাশ
roobs


-2

হাস্কেল, 44 টি অক্ষর

n True=1
n _=1-2
g a b c d e f=n$a^b^c>d^e^f

আমার মেশিনে সমস্ত পরীক্ষার উদাহরণের জন্য এক সেকেন্ডের অধীনে চলে ।


ভবিষ্যতে আমার একটি সুপারম্যাচিন রয়েছে।
টমাস এডিং

এছাড়াও মেশিন কোড উচ্চতর অনুকূলিত হয়। সংকলিত কোডটি পরিদর্শন করে এটি লোগারিদম এবং অন্যান্য ক্রিয়াকলাপগুলি করে। টিএইচসি (ত্রিনিথিস হাস্কেল সংকলক) একটি স্মার্ট সংকলক !!! কে বলেছে আমাকে জিএইচসি বা হিউস ব্যবহার করতে হবে? আসলে, আমি আমার সংকলকটির জন্য বাস্তব উত্স কোড সরবরাহ করতে পারি যার একটি জিএইচসি নির্ভরতা রয়েছে। এটি / আপনার / মেশিনে এমনকি এই উত্স কোডের জন্য দ্রুত কোড আউটপুট দেবে। আরও কী, এটি কোনও হাস্কেল প্রোগ্রামকে ঠিক একই মাত্রায় জিএইচসি (জিএইচসি ব্যাকএন্ড) হিসাবে সংকলন করবে।
টমাস এডিং

@ ডাউনভোটার্স: আমার কম্পাইলারটি আপনাকে প্রমাণ করে দেয় যে এটি দ্রুত চলে I'll আমি এই সপ্তাহের শেষে পুরো উত্স কোডটি সরবরাহ করব (আমি কিছুক্ষণের জন্য বাড়িতে থাকব না)। ভাষার গতি সম্পর্কে কথা বলা বাজে কথা, কারণ এগুলি সমস্ত সংকলক / দোভাষীর কাছে ফোটে।
টমাস এডিং

এবং আমি বুলশিটের গতি / দক্ষতার কথাও বলছিলাম না। আমি উল্লেখ করছিলাম কীভাবে (আপনি পোস্টটি সম্পাদনা করার আগে এবং ফাংশনটি পরিবর্তিত bকরার আগে n) ফ এর ধরণের প্রকারটি f :: (Ord a, Num a, Integral b2, Integral (Bool -> t), Integral b, Integral b1) => a -> (Bool -> t) -> b -> a -> b1 -> b2 -> tঅদ্ভুত জিনিস দিয়েছিলেন, হাহ?
চিরকালীন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.