যে কোনও (সীমাবদ্ধ) অসীম সেট এবং আনর্ডারড জোড়াগুলির মধ্যে একটি আসন্ন ইনজেকটিভ ফাংশন ডিজাইন করুন


18

সম্পর্কিত, তবে এটির জন্য কেবল ধনাত্মক পূর্ণসংখ্যার প্রয়োজন হয় এবং এটি পরিবর্তনশীল হতে হবে না

ক্যান্টর পেয়ারিং ফাংশনটি এই উইকিপিডিয়া নিবন্ধে বর্ণিত হয়েছে । মূলত, এটি এমন একটি অপারেশন যা এটি দুটি এবং এক্স এবং ওয়াইয়ের দুটি ক্ষেত্রে প্রয়োগ করা হয়, ফলস্বরূপ X এবং Y দুটি মূল মান পেতে পারে।

আপনার কাজটি দুটি ফাংশন ডিজাইন করা: একটি যা সম্পাদন করে X, Y -> Zএবং অন্যটি যা সম্পাদন করে Z -> X, Y। এখানে ধরা: X, Y -> Zঅবশ্যই পরিবর্তনশীল হতে হবে। এর অর্থ এই যে Z -> X, Yনির্ধারণ করতে যদি ইনপুট ছিল না X, Yবা Y, X

এই চ্যালেঞ্জের আনুষ্ঠানিক সংজ্ঞাটি হ'ল:

সংখ্যার একটি গণনাযোগ্য অসীম সেট এস চয়ন করুন।
নিম্নলিখিত কার্য সম্পাদন করে এমন দুটি ফাংশন ডিজাইন করুন:

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

আবশ্যকতা

  • রানের মধ্যে ফলাফলটি অভিন্ন হওয়া উচিত।
  • {a, a} একটি আনর্ডারড জুটি

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


এই puzzling.stackexchange.com জন্য ভাল ফিট করে না ?
জাকুব

2
@ জাকুব অগত্যা নয় যেহেতু আপনাকে কোড লিখতে হবে।
মিঃ এক্সকোডার

আমি ধরে নিচ্ছি জোড়গুলি অনন্য, তবে এই জোড়গুলিতে ব্যবহৃত সংখ্যাগুলি কি নয়? সুতরাং যখন 1,2জোড়াগুলির মধ্যে একটি হয়, 1,3তখনও সম্ভাব্য জুটি (উভয় ব্যবহার 1) হতে পারে?
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন আপনার নিশ্চিত অর্থ আমি নিশ্চিত নই
হাইপারনিউটারিনো

@ জিউসপ্পি উল্টোটি সঠিক ক্রমটি ফিরিয়ে আনতে সক্ষম হবে না; এটা ঠিক যে ফাংশন জন্য fএবং তার বিপরীত g, sorted((x, y))একই হিসাবে হওয়া উচিতsorted(g(f(x, y)))
HyperNeutrino

উত্তর:


13

হাস্কেল , 65 + 30 = 95 বাইট

a#b=length.fst$span(<(max a b,min a b))[(a,b)|a<-[1..],b<-[1..a]]

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

([(a,b)|a<-[1..],b<-[1..a]]!!)

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


দ্রষ্টব্য: যখন দুটি ফাংশন কোড ভাগ করতে পারে তখন এটি কেবল 75 বাইট:

(l!!)
a#b=length.fst$span(<(max a b,min a b))l
l=[(a,b)|a<-[1..],b<-[1..a]]

এটি অনলাইন চেষ্টা করুন! ডোমেনটি ইতিবাচক পূর্ণসংখ্যা। ফাংশনটি (#)জুটি তৈরি করে, ফাংশনটি (l!!)তার বিপরীত। ব্যবহারের উদাহরণ: উভয় (#) 5 3এবং (#) 3 5ফলন 12এবং (l!!) 12ফলন (5,3)

এটি স্পষ্টভাবে অসীম তালিকায় সমস্ত সাজানো জোড়া যুক্ত করে কাজ করে l:

l = [(1,1),(2,1),(2,2),(3,1),(3,2),(3,3),(4,1),(4,2),(4,3),(4,4),(5,1),(5,2),(5,3),(5,4),(5,5),(6,1), ...`

এনকোডিংটি কেবলমাত্র এই তালিকার সূচক।


ওপি দ্বারা, ভাগ করা কোডটি অবশ্যই দুবার গণনা করা উচিত
গর্বিত হাসেলেলার

5

পাইথ , 8 + 6 = 14 বাইট

ij\aSQ16

    SQ   # Sort the input
 j\a     # join with "a"
i     16 # convert from base 16 to base 10

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

c.HQ\a

 .HQ     # convert from base 10 to 16
c   \a   # split on "a"

এটি অনলাইন চেষ্টা করুন!
ডোমেন: ধনাত্মক পূর্ণসংখ্যা।


সুন্দর পদ্ধতির! +1
হাইপারনিউটারিনো

4
ভালো নম্বর অনেক জন্য কাজ করে না 2এবং 10(যা ডোমেইনে হয়) উদাহরণস্বরূপ
Emigna

অবশ্যই। Example1 , Example2
Emigna

2 য় ফাংশনটি এস-এর যে কোনও মানের জন্য কাজ করার কথা , প্রথম ফাংশনটি দিয়ে তৈরি করা এক নয় (আমি একই ভুল করেছি)।
আর্নৌল্ড

4

জেলি , 8 + 11 = 19 বাইট

রডের অ্যালগরিদম কাজ না করায় পিছনে ঘুরানো।

এটি ইতিবাচক পূর্ণসংখ্যার ডোমেনে কাজ করে।

2 টি আর্গুমেন্ট হিসাবে গ্রহণ করে xএবং yকোন অর্থে ফিরে আসে তা বিবেচনা করে না z

»’RSð+ð«

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

নেয় zএবং ফেরত দেয়[min(x, y), max(x, y)]

R€Ẏ,Rx`$ị@€

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


1
ডাউনভোটস কেন? এটি রডের অ্যালগরিদম নয়।
এরিক আউটগলফার

4

জাভাস্ক্রিপ্ট (ES7), 44 বাইট

(x,y)=>x>y?x*x+y:y*y+x
z=>[x=z**.5|0,y=z-x*x]

অ-নেতিবাচক পূর্ণসংখ্যার কোনও উপসেট পর্যন্ত মানচিত্র।


4

সি (জিসিসি) , 36 + 39 = 75 বাইট

দুটি বাইট সংরক্ষণ করার জন্য @ টিএসএকে ধন্যবাদ

ডোমেনটি অ-নেতিবাচক পূর্ণসংখ্যার।

p(x,y){return y>x?p(y,x):-~x*x/2+y;}

নেয় xএবং y, ফেরত দেয় z

u(int*r){for(*r=0;r[1]>*r;r[1]-=++*r);}

একটি দ্বি-উপাদান intঅ্যারে নেয় । দ্বিতীয় উপাদানটি zকল করার আগে সেট করতে হবে । কল করার পর rরয়েছে xএবং y

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


(x+1)->-~x
tsh

3

জেলি , 13 11 বাইট

ধনাত্মক পূর্ণসংখ্যার জোড়, 5 বাইট

Ṁc2+Ṃ

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

ধনাত্মক পূর্ণসংখ্যার জোড় যুক্ত করতে 6 বাইট

ŒċṀÞị@

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

অ্যালগরিদম

আমরা যদি ইতিবাচক পূর্ণসংখ্যার সমস্ত অনারর্ডার্ড জোড়গুলির সেটকে তাদের সর্বাধিক এবং তার যোগফল অনুসারে বাছাই করি তবে আমরা নিম্নলিখিত ক্রমটি পাই।

{1,1}, {1,2}, {2,2}, {1,3}, {2,3}, {3,3}, {1,4}, {2,4}, {3 , 4}, {4,4}, {1,5}, {2,5}, {3,5}, {4,5}, {5,5},…

প্রথম ফাংশনটি একটি জোড় {x, y takes নেয় এবং এই অনুক্রমের সূচকটি খুঁজে পায়।

দ্বিতীয় ফাংশনটি ইতিবাচক পূর্ণসংখ্যার z নেয় এবং ক্রমের z আইটেমটি প্রদান করে।

নোট করুন যে এই ম্যাপিংটি @ এরিকথআউটগলফারের জেলি উত্তরের মতো

কিভাবে এটা কাজ করে

Ṁc2+Ṃ   Main link. Argument: [x, y]
        Let m = max(x, y) and n = min(x, y).

Ṁ       Maximum; yield m.
 c2     2-combinations; yield mC2 = m(m-1)/2.
        Note that there's one pair with maximum 1 ({1,1}), two pairs with maximum 2
        ({1,2}, {2,2}), etc., so there are 1 + 2 + … + (m-1) = m(m-1)/2 pairs with
        maximum less than m.
    Ṃ   Minimum; yield n.
        Note that {x,y} is the n-th pair with maximum m.
   +    Add; yield mC2 + n.
        This finds {x,y}'s index in the sequence.
ŒċṀÞị@  Main link. Argument: z

Œċ      2-combinations w/replacement; yield all pairs [x, y] such that x ≤ y ≤ z.
  ṀÞ    Sort by maximum.
    ị@  Retrieve the pair at index z (1-based).

2
দয়া করে ব্যাখ্যা আমি বিশ্বাস করি না এটি বৈধ ...
এরিক দি আউটগল্ফার

আমি অ্যালগরিদম যুক্ত করেছি।
ডেনিস

কিছু আমার কাছে ভালভাবে আটকে না ... যদিও আমি নিশ্চিত নই যে এটিও অবৈধ কিনা। মূলত এ জাতীয়টি আপনি ভালভাবে ব্যবহার করেন না cএবং Œċযদিও আমি ভুল হতে পারি although বিটিডব্লিউটিই আমার উত্তর ছিল যে আপনি আউটগল্ফ করেছেন> _>
এরিক দি আউটগল্ফার

পার্থক্য জোড়া জন্য সর্বনিম্ন। যদি সি প্রতিস্থাপন ছাড়া সমন্বয় নির্ণয় এবং Ƈ সঙ্গে সমন্বয় নির্ণয় nƇ2 = nC2 + N
ডেনিস

2

গণিত (35 + 53) = 78 বাইট

((x=Min[#])+(y=Max[#]))(x+y+1)/2+y&

(i=Floor[(-1+Sqrt[1+8#])/2];{#-i(1+i)/2,i(3+i)/2-#})&

জেড <-->> জেডএক্সজেডকে মিন এবং ম্যাক্সের সাথে মিলিয়ে এটি অর্ডারহীন করার জন্য এটি একটি সুপরিচিত চতুষ্কোণ জুটি ফাংশন।


2

রুবি, 66 বাইট

f=->x,y{2**~-x|2**~-y}
g=->n{x,y=(1..n).select{|i|n[i-1]>0};[x,y||x]}

এটিকে আরও সহজ করতে আমি চতুরতার সাথে একটি সীমাহীন সেট নির্বাচন করার একটি উপায় অনুসন্ধান করার চেষ্টা করছি, এটি এখন পর্যন্ত আমার সেরা।

আমরা f (x, y) = 2 x-1 বিটওয়াইস-বা 2 y-1 সংজ্ঞায়িত করি । ডোমেনটিতে 1,2 সমন্বিত হিসাবে পুনরাবৃত্তভাবে সংজ্ঞায়িত সেট রয়েছে এবং সেটে নম্বরে f কল করে যে সমস্ত সংখ্যা তৈরি করা যেতে পারে (নোট করুন যে f (1,1) = 1 এবং f (2,2) = 2, সুতরাং 1 এবং 2 এর বিপরীতে রয়েছে)। ফলস্বরূপ সংখ্যার একটিতে দুটি বা বাইনারি সম্প্রসারণে এক বা দুটি 1s থাকে, সেটের সংখ্যার সাথে মিলে 1s এর সূচকগুলি। সূচকগুলি গ্রহণ করে আমরা আসল অর্ডারযুক্ত জোড়টিকে বের করে আনতে পারি। যদি কেবল একটি 1 থাকে তবে এর অর্থ জোড়ের উপাদানগুলি সমান।

উদাহরণস্বরূপ, চ (3,5) 20, কারণ 20 বেস 2 তে 10100, যার তৃতীয় এবং 5 তমতমতম গুরুত্বপূর্ণ স্থানগুলিতে 1 গুলি রয়েছে।



ধন্যবাদ, এস আসলে সেই ওইআইএস ক্রমের একটি উপসেট যদিও এটিতে কেবল এমন সংখ্যার অন্তর্ভুক্ত রয়েছে যাদের 1 এর এস
তে

হ্যাঁ, অবশ্যই ঠিক আছে, অন্য কোনও সিকোয়েন্স প্রথম কয়েকটি পদগুলির সাথে মেলে না (32 অবধি)।
জিউসেপ

এস তে 0 যুক্ত করুন এবং আপনি কয়েকটি হ্রাস বাঁচাতে পারবেন।
নভেলহোফ

2

জাভা 8, 153 146 141 137 + 268 224 216 205 বাইট

পেয়ার ফাংশন

a->{String f="";for(int i=(f+a[0]).length(),c=0,j;i>0;i-=c,f+=c,c=0)for(j=1;j<10;c+=i-j++<0?0:1);return new Integer(a[0]+""+a[1]+"0"+f);}

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

Depair ফাংশন

r->{String a=r+"",t=a.substring(a.lastIndexOf('0')+1);int l=0,i=l,o=t.length();for(;i<o;l+=r.decode(t.charAt(i++)+""));return new int[]{r.decode(a.substring(0,l)),r.decode(a.substring(l,a.length()-o-1))};}

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


1
আপনি কয়েকটি অংশ গল্ফ করতে পারেন। জোড়া ফাংশনে: int i=(""+a[0]).length()হতে পারে int i=(f+a[0]).length(); মধ্যে স্থান c=0,j;i>0;অপসারণ করা যেতে পারে; a[0].parseIntহতে পারে new Integer। হতাশার কার্যে: তিনটিই r.parseIntহতে পারে r.decode; এবং আপনি t.length()এটির জন্য একটি পূর্ণ পরিবর্তন করতে পারেন, যেহেতু আপনি এটি দুটিবার ব্যবহার করেন।
কেভিন ক্রুইজসেন

1

05 এ বি 1 ই , 6 + 11 = 17 বাইট

আমার জেলি উত্তর পোর্ট।

ডোমেন: ধনাত্মক পূর্ণসংখ্যা।

[x, y]ইনপুট হিসাবে হিসাবে একটি তালিকা নেয় , ফেরত z

{`<LO+

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

zইনপুট হিসাবে, ইতিবাচক পূর্ণসংখ্যার গ্রহণ করে [min(x, y), max(x, y)]

L2ã€{RÙR¹<è

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

এমিনাকে ধন্যবাদ -5 ।


আপনার দ্বিতীয় প্রোগ্রামটি L2ã
with

@ এমিগনা চমৎকার কৌশল 2ã€{RÙR!
এরিক আউটগলফার

1

জাভাস্ক্রিপ্ট, 72 বাইট

f=a=>eval('0x'+a.sort().join`a`)
g=n=>n.toString(16).split`a`.map(x=>+x)

ধনাত্মক পূর্ণসংখ্যার জন্য (তত্ত্ব অনুসারে) কাজ করে। বেশ সহজ ধারণা: কয়েকটি (যাদু) ক্রমে দুটি সংখ্যা বাছাই করুন, তাদের একটি অক্ষরের মাধ্যমে স্ট্রিং হিসাবে সংযুক্ত করুন "a", এটি হেক্স সংখ্যার হিসাবে পার্স করুন।


1

এমএটিএল, 6 + 8 = 14 বাইট

এনকোডিং ফাংশন, দুটি ইনপুট নেয় এন, মি। নবম প্রাইম এবং এমটি প্রাইমের আউটপুট পণ্য।

,iYq]*

পদক্ষেপ:

  • , - দু'বার করুন
  • i - ইনপুট পুশ করুন
  • Yq - পপ ইনপুট, ইনপুট'স প্রাইম পুশ করুন
  • ]* - শেষ দুটি বার করুন, উভয় প্রাইমকে পপ করুন এবং পণ্যটি পুশ করুন

ডিকোডিং ফাংশন, এক ইনপুট নেয়। এন এর প্রতিটি মৌলিক নীচে প্রাইমের সংখ্যা আউটপুট করে।

iYf"@Zqn

পদক্ষেপ:

  • i - ইনপুট পুশ করুন
  • Yf - পপ ইনপুট, মৌলিক উপাদানগুলির অ্যারে পুশ করুন
  • " - অ্যারেতে এন
  • @Zq - নীচে প্রাইমগুলির অ্যারে পুশ করুন
  • n - পপ অ্যারে, অ্যারের ধাক্কা দৈর্ঘ্য

এটি পরিবর্ধক কারণ গুণটি পরিবর্তনীয়, এবং ইনজেক্টিভ কারণ মূল কারণগুলি অনন্য। এটি পূর্ণসংখ্যার উপর নয় Not


0

তুষ , 5 + 3 = 8 বাইট

আমি সত্যিই আশা করি আমার চ্যালেঞ্জটি ঠিক আছে, আমি কিছু মুছে ফেলা উত্তরগুলি দেখতে পেয়েছি যা আমার কাছে বৈধ বলে মনে হচ্ছে ...

একক ধনাত্মক পূর্ণসংখ্যার ধনাত্মক পূর্ণসংখ্যার দম্পতি:

¤*!İp

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

এটি প্রাথমিক সংখ্যার তালিকা থেকে প্রদত্ত সূচকে (1-সূচীকৃত) সংখ্যাগুলি নিয়ে এবং তাদের গুণ করে কাজ করে।

ইতিবাচক পূর্ণসংখ্যার দম্পতির প্রথম ফাংশনের ফলাফল:

mṗp

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

আমরা ইনপুট নম্বরকে গুণিত করি এবং এর কারণগুলির সমস্ত (উভয়) এর প্রাইমগুলির তালিকায় সূচকটি ফিরিয়ে দিই।

কাজ করেছেন উদাহরণ

প্রদত্ত (4,1)শুরুর দম্পতি হিসেবে আমরা চতুর্থ ও প্রথম মৌলিক সংখ্যার নিতে (7,2)এবং সংখ্যাবৃদ্ধি তাদের → 14। এই গুণটিই দুটি উপাদানের ক্রমে ক্রিয়াকলাপকে নির্ভরশীল করে তোলে।

থেকে শুরু করে 14, আমরা এটা উত্পাদক (2,7)এবং সূচকের আসতে 2এবং 7মৌলিক সংখ্যার → তালিকায় (1,4)


আসলে, আরনল্ড থেকে মুছে ফেলা উত্তরের দিকে তাকালে এর অ্যালগরিদম আরও ভাল, এবং এটি হুসকে পোর্ট করার ফলে 6 বাইট তৈরি হবে ... এর সমাধানটি (এবং আমারও) বৈধ আছে কি না কেউ তা নিশ্চিত করতে পারে?
লিও


@ এমিগনা দ্বিতীয় ফাংশনটি করেন না, তবে প্রাইমগুলি কখনই প্রথম দ্বারা ফিরে আসে না ...
লিও

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

0

সি # , 80 বাইট (38 + 42)


উপাত্ত

এনকোডার

  • ইনপুট Int32 lএকটি নম্বর
  • ইনপুট Int32 rএকটি নম্বর
  • আউটপুট Int64 উভয় ints একসাথে মিশ্রিত

সঙ্কেতমোচক

  • ইনপুট Int32 v মান
  • Int32[]দুটি মূল ints সহ আউটপুট

Golfed

// Encoder
e=(l,r)=>{return(long)l<<32|(uint)r;};

// Decoder
d=v=>{return new[]{v>>32,v&0xFFFFFFFFL};};

Ungolfed

// Encoder
e = ( l, r ) => {
    return (long) l << 32 | (uint) r;
};

// Decoder
d = v => {
    return new[] {
        v >> 32,
        v & 0xFFFFFFFFL };
};

অসম্পূর্ণ পাঠযোগ্য

// Encoder
// Takes a pair of ints
e = ( l, r ) => {

    // Returns the ints fused together in a long where the first 32 bits are the first int
    // and the last 32 bits the second int
    return (long) l << 32 | (uint) r;
};

// Decoder
// Takes a long
d = v => {

    // Returns an array with the ints decoded where...
    return new[] {

        // ... the first 32 bits are the first int...
        v >> 32,

        // ... and the last 32 bits the second int
        v & 0xFFFFFFFFL };
};

সম্পূর্ণ কোড

using System;
using System.Collections.Generic;

namespace TestBench {
    public class Program {
        // Methods
        static void Main( string[] args ) {
            Func<Int32, Int32, Int64> e = ( l, r ) => {
                return(long) l << 32 | (uint) r;
            };
            Func<Int64, Int64[]> d = v => {
                return new[] { v >> 32, v & 0xFFFFFFFFL };
            };

            List<KeyValuePair<Int32, Int32>>
                testCases = new List<KeyValuePair<Int32, Int32>>() {
                    new KeyValuePair<Int32, Int32>( 13, 897 ),
                    new KeyValuePair<Int32, Int32>( 54234, 0 ),
                    new KeyValuePair<Int32, Int32>( 0, 0 ),
                    new KeyValuePair<Int32, Int32>( 1, 1 ),
                    new KeyValuePair<Int32, Int32>( 615234, 1223343 ),
                };

            foreach( KeyValuePair<Int32, Int32> testCase in testCases ) {
                Console.WriteLine( $" ENCODER: {testCase.Key}, {testCase.Value} = {e( testCase.Key, testCase.Value )}" );
                Console.Write( $"DECODING: {e( testCase.Key, testCase.Value )} = " );
                PrintArray( d( e( testCase.Key, testCase.Value ) ) );

                Console.WriteLine();
            }

            Console.ReadLine();
        }

        public static void PrintArray<TSource>( TSource[] array ) {
            PrintArray( array, o => o.ToString() );
        }
        public static void PrintArray<TSource>( TSource[] array, Func<TSource, String> valueFetcher ) {
            List<String>
                output = new List<String>();

            for( Int32 index = 0; index < array.Length; index++ ) {
                output.Add( valueFetcher( array[ index ] ) );
            }

            Console.WriteLine( $"[ {String.Join( ", ", output )} ]" );
        }
    }
}

রিলিজ

  • v1.0 - 80 bytes- প্রাথমিক সমাধান।

মন্তব্য

  • না

0

পাইথন: 41 + 45 = 86

এনকোডার: 41

e=lambda*x:int('1'*max(x)+'0'+'1'*min(x))
e(4, 3), e(3,4)

(11110111, 11110111)

ডিকোডার: 45

d=lambda z:[len(i)for i in str(z).split('0')]
d(11110111)

[৪, ৩]

পুরানো প্রচেষ্টা:

পাইথন: 114: 30 + 84

এনকোডার: 30

2 পূর্ণসংখ্যা গ্রহণ করে, একটি স্ট্রিং প্রদান করে

e=lambda*x:2**max(x)*3**min(x)
e(3, 4), e(4, 3)

(432, 432)

ডিকোডার: 86

def d(z):
 x=y=0
 while 1-z%2:
  x+=1
  z/=2
 while 1-z%3:
  y+=1
  z/=3
 return x,y
d(432)

4, 3

ডিকোডার 2: 120

জেনারেটর বোঝা এবং যোগফল সঙ্গে অন্য প্রচেষ্টা

def d(z):
 x=sum(1 for i in range(z)if not z%(2**i))-1
 z/=2**x
 return x,sum(1 for i in range(int(z))if not z%(3**i))-1

1
দ্বিতীয় প্রয়াসের ভিত্তিতে: e=lambda*x:10**sum(x)-10**min(x);d=lambda z:map(z .count,'09'); টিআইও
tsh

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