কোনও সংখ্যায় অনির্দিষ্ট আকারের একটি তালিকা মানচিত্র করুন!


11

অসীম অধ্যয়নরত গণিতের ক্ষেত্রে এটি সুপরিচিত, যে কোনও সীমাবদ্ধ পরিমাণের গণ্যযোগ্য সেটগুলির কার্টেসিয়ান পণ্যটিও গণনাযোগ্য

আপনার কাজটি হ'ল এটি প্রয়োগের জন্য দুটি প্রোগ্রাম লিখুন, একটি থেকে মানচিত্রের তালিকা থেকে পূর্ণসংখ্যায়, একটিতে মানচিত্র থেকে পূর্ণসংখ্যার তালিকায়।

আপনার ফাংশনটি অবশ্যই দ্বিপক্ষীয় এবং নিয়মিতকরণমূলক হওয়া উচিত, যার অর্থ 1সর্বদা একটি নির্দিষ্ট তালিকায় 2ম্যাপ হবে এবং সর্বদা অন্য নির্দিষ্ট তালিকায় ম্যাপ করবে ইত্যাদি ইত্যাদি ...

এর আগে , আমরা কেবল 0এবং এর সমন্বিত একটি তালিকায় পূর্ণসংখ্যার মানচিত্র তৈরি করেছি 1

তবে, এখন তালিকায় অ-নেতিবাচক সংখ্যা থাকবে।

চশমা

  • প্রোগ্রাম / ফাংশন, যুক্তিসঙ্গত ইনপুট / আউটপুট ফর্ম্যাট।
  • ম্যাপযুক্ত পূর্ণসংখ্যাগুলি শুরু হয় 1বা শুরু হয় 0তা আপনার পছন্দ, যার অর্থ 0কোনও কিছুর কাছে মানচিত্রের (তবে হতে পারে) দরকার নেই।
  • খালি অ্যারে []অবশ্যই এনকোড করা উচিত।
  • ইনপুট / আউটপুট যে কোনও বেসে থাকতে পারে।
  • দুটি ফাংশনের মধ্যে ভাগ করে নেওয়ার কোড অনুমোদিত

স্কোরিং

এটি । সর্বনিম্ন স্কোর জয়।

স্কোর দুটি প্রোগ্রাম / ফাংশনের দৈর্ঘ্যের (বাইটে) যোগফল।


"তবে, এখন তালিকায় অ-নেতিবাচক সংখ্যা থাকবে" "
ফাঁস নুন

সুতরাং, স্পষ্টতই, আমরা ম্যাপিং করছি N^inf -> N?
মেগো

@ মেগো এন-ইনফ গণনাযোগ্য নয়। এন ^ কে, যেখানে কোনও সীমাবদ্ধ নম্বর।
ফাঁস নুন

আমরা আড্ডায় এই সম্পর্কে আলোচনা করা হয়েছে।
ফাঁস নুন

এটি 1 থেকে শুরু হয় বা 0 থেকে শুরু করা আপনার পছন্দ। এটি কি একক পূর্ণসংখ্যার এবং তালিকার পূর্ণসংখ্যার ক্ষেত্রে প্রযোজ্য?
ডেনিস

উত্তর:


10

জেলি , 18 16 বাইট

পূর্ণসংখ্যার তালিকা, 10 8 বাইট

TṪạL;³ÆẸ

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

পূর্ণসংখ্যা তালিকা, 8 বাইট

ÆE©Ḣ0ẋ®;

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

পটভূমি

পি 0 , পি 1 , পি 2 , Let আসমান ক্রমে মূল সংখ্যার ক্রম হতে দিন।

অ নেতিবাচক পূর্ণসংখ্যার প্রতিটি তালিকার জন্য উত্তর: = [একটি 1 , ⋯, একটি এন ] , আমরা ম্যাপ একজন থেকে পি 0 z- র (ক) পি 1 একটি 1 ⋯ পি এন একটি এন , যেখানে z- র (ক) সংখ্যা এর শূণ্যসমূহ trailing একটি

উপরের মানচিত্রটিকে সোজাভাবে বিপরীত করা। একটি জন্য ইতিবাচক পূর্ণসংখ্যা , আমরা এটা স্বতন্ত্র পরপর প্রধানমন্ত্রী ক্ষমতা পণ্য হিসাবে উত্পাদক এন = P 0 α 0 পি 1 α 1 ⋯ পি এন α এন , যেখানে α এন > 0 , তারপর যেমন তালিকা পুনর্গঠন 1 , ⋯, α এন ] , সংযোজন α 0 শূণ্যসমূহ।

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

পূর্ণসংখ্যার তালিকা

TṪạL;³ÆẸ  Main link. Argument: A (list of non-negative integers)

T         Yield all indices of A that correspond to truthy (i.e., non-zero) items.
 Ṫ        Tail; select the last truthy index.
          This returns 0 if the list is empty.
   L      Yield the length of A.
  ạ       Compute the absolute difference of the last truthy index and the length.
          This yields the amount of trailing zeroes of A.
    ;³    Prepend the difference to A.
      ÆẸ  Convert the list from prime exponents to integer.

পূর্ণসংখ্যা তালিকা

ÆE©Ḣ0ẋ®;  Main link. Input: k (positive integer)

ÆE        Convert k to the list of its prime exponents.
  ©       Save the list of prime exponents in the register.
   Ḣ      Head; pop the first exponent.
          If the list is empty, this yields 0.
    0ẋ    Construct a list of that many zeroes.
      ®;  Concatenate the popped list of exponents with the list of zeroes.       

উদাহরণ আউটপুট

প্রথম একশত ইতিবাচক পূর্ণসংখ্যার নিম্নলিখিত তালিকাগুলিতে মানচিত্র।

  1: []
  2: [0]
  3: [1]
  4: [0, 0]
  5: [0, 1]
  6: [1, 0]
  7: [0, 0, 1]
  8: [0, 0, 0]
  9: [2]
 10: [0, 1, 0]
 11: [0, 0, 0, 1]
 12: [1, 0, 0]
 13: [0, 0, 0, 0, 1]
 14: [0, 0, 1, 0]
 15: [1, 1]
 16: [0, 0, 0, 0]
 17: [0, 0, 0, 0, 0, 1]
 18: [2, 0]
 19: [0, 0, 0, 0, 0, 0, 1]
 20: [0, 1, 0, 0]
 21: [1, 0, 1]
 22: [0, 0, 0, 1, 0]
 23: [0, 0, 0, 0, 0, 0, 0, 1]
 24: [1, 0, 0, 0]
 25: [0, 2]
 26: [0, 0, 0, 0, 1, 0]
 27: [3]
 28: [0, 0, 1, 0, 0]
 29: [0, 0, 0, 0, 0, 0, 0, 0, 1]
 30: [1, 1, 0]
 31: [0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 32: [0, 0, 0, 0, 0]
 33: [1, 0, 0, 1]
 34: [0, 0, 0, 0, 0, 1, 0]
 35: [0, 1, 1]
 36: [2, 0, 0]
 37: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 38: [0, 0, 0, 0, 0, 0, 1, 0]
 39: [1, 0, 0, 0, 1]
 40: [0, 1, 0, 0, 0]
 41: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 42: [1, 0, 1, 0]
 43: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 44: [0, 0, 0, 1, 0, 0]
 45: [2, 1]
 46: [0, 0, 0, 0, 0, 0, 0, 1, 0]
 47: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 48: [1, 0, 0, 0, 0]
 49: [0, 0, 2]
 50: [0, 2, 0]
 51: [1, 0, 0, 0, 0, 1]
 52: [0, 0, 0, 0, 1, 0, 0]
 53: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 54: [3, 0]
 55: [0, 1, 0, 1]
 56: [0, 0, 1, 0, 0, 0]
 57: [1, 0, 0, 0, 0, 0, 1]
 58: [0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
 59: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 60: [1, 1, 0, 0]
 61: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 62: [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
 63: [2, 0, 1]
 64: [0, 0, 0, 0, 0, 0]
 65: [0, 1, 0, 0, 1]
 66: [1, 0, 0, 1, 0]
 67: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 68: [0, 0, 0, 0, 0, 1, 0, 0]
 69: [1, 0, 0, 0, 0, 0, 0, 1]
 70: [0, 1, 1, 0]
 71: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 72: [2, 0, 0, 0]
 73: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 74: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
 75: [1, 2]
 76: [0, 0, 0, 0, 0, 0, 1, 0, 0]
 77: [0, 0, 1, 1]
 78: [1, 0, 0, 0, 1, 0]
 79: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 80: [0, 1, 0, 0, 0, 0]
 81: [4]
 82: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
 83: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 84: [1, 0, 1, 0, 0]
 85: [0, 1, 0, 0, 0, 1]
 86: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
 87: [1, 0, 0, 0, 0, 0, 0, 0, 1]
 88: [0, 0, 0, 1, 0, 0, 0]
 89: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 90: [2, 1, 0]
 91: [0, 0, 1, 0, 1]
 92: [0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
 93: [1, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 94: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
 95: [0, 1, 0, 0, 0, 0, 1]
 96: [1, 0, 0, 0, 0, 0]
 97: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
 98: [0, 0, 2, 0]
 99: [2, 0, 0, 1]
100: [0, 2, 0, 0]

ইহা অসাধারণ.
ফাঁস নুন

3

পাইথন 2, 88 বাইট

d=lambda n:map(len,bin(n).split('1')[1:])
e=lambda l:int('1'.join(a*'0'for a in[2]+l),2)

ডেমো:

>>> for i in range(33):
...     print e(d(i)), d(i)
... 
0 []
1 [0]
2 [1]
3 [0, 0]
4 [2]
5 [1, 0]
6 [0, 1]
7 [0, 0, 0]
8 [3]
9 [2, 0]
10 [1, 1]
11 [1, 0, 0]
12 [0, 2]
13 [0, 1, 0]
14 [0, 0, 1]
15 [0, 0, 0, 0]
16 [4]
17 [3, 0]
18 [2, 1]
19 [2, 0, 0]
20 [1, 2]
21 [1, 1, 0]
22 [1, 0, 1]
23 [1, 0, 0, 0]
24 [0, 3]
25 [0, 2, 0]
26 [0, 1, 1]
27 [0, 1, 0, 0]
28 [0, 0, 2]
29 [0, 0, 1, 0]
30 [0, 0, 0, 1]
31 [0, 0, 0, 0, 0]
32 [5]

পাইথন 2, 130 বাইট

এখানে আরও একটি "দক্ষ" সমাধান রয়েছে যেখানে আউটপুটটির বিট-দৈর্ঘ্যটি ইনফোনটির পরিবর্তে ইনপুটটির বিট-দৈর্ঘ্যের ক্ষেত্রে লিনিয়ার।

def d(n):m=-(n^-n);return d(n/m/m)+[n/m%m+m-2]if n else[]
e=lambda l:int('0'+''.join(bin(2*a+5<<len(bin(a+2))-4)[3:]for a in l),2)

আমার সমাধান হিসাবে একই অ্যালগরিদম ব্যবহার :) :)
Leaky নুন

@ কেনি লাউ: আমি আপনার সমাধানটির দিকে নজর দিইনি। এগুলি দেখতে একই রকম তবে অভিন্ন নয় (0 সে এবং 1 সের সরিয়ে নেওয়া হয়েছে)। এবং আপনার খালি তালিকায় রাউন্ড ট্রিপ করতে ব্যর্থ।
অ্যান্ডারস ক্যাসরগ

আমি মনে করি, মনে করিয়ে দেওয়ার জন্য ধন্যবাদ।
লিকি নুন

যাইহোক, আমি বলেছিলাম যে আউটপুট যে কোনও বেসে হতে পারে ।
ফুটো নুন

যেহেতু ফাংশন মধ্যে ভাগ কোড অনুমতি দেওয়া হয়, এটা দেখে মনে হচ্ছে আপনি ঠিক নির্মাণ করতে পারেন eজন্য বিপরীত হতে d: e=lambda l,i=0:l!=d(i)and-~e(l,i+1)
xnor

1

পাইথন 2, 204 202 বাইট

p=lambda x,y:(2*y+1<<x)-1
u=lambda n,x=0:-~n%2<1and u(-~n//2-1,x+1)or[x,n//2]
e=lambda l:l and-~reduce(p,l,len(l)-1)or 0
def d(n):
 if n<1:return[]
 r=[];n,l=u(n-1);exec"n,e=u(n);r=[e]+r;"*l;return[n]+r

বারবার একটি Z + x Z + <-> জেড + বাইজিকেশন প্রয়োগ করে তালিকার দৈর্ঘ্যের দ্বারা চাপ দেওয়া Works

0: []
1: [0]
2: [1]
3: [0, 0]
4: [2]
5: [0, 0, 0]
6: [1, 0]
7: [0, 0, 0, 0]
8: [3]
9: [0, 0, 0, 0, 0]
10: [1, 0, 0]
11: [0, 0, 0, 0, 0, 0]
12: [0, 1]
13: [0, 0, 0, 0, 0, 0, 0]
14: [1, 0, 0, 0]
15: [0, 0, 0, 0, 0, 0, 0, 0]
16: [4]
17: [0, 0, 0, 0, 0, 0, 0, 0, 0]
18: [1, 0, 0, 0, 0]
19: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
20: [0, 0, 1]
21: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
22: [1, 0, 0, 0, 0, 0]
23: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
24: [2, 0]
25: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
26: [1, 0, 0, 0, 0, 0, 0]
27: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
28: [0, 0, 0, 1]
29: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
30: [1, 0, 0, 0, 0, 0, 0, 0]
31: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

একটি প্রশ্ন: কোন ফাংশনটি "পূর্ণসংখ্যার তালিকার তালিকা" ফাংশন এবং কোনটি "তালিকার সাথে পূর্ণসংখ্যার" ফাংশন?
user48538

@ জাইবিন ১০১০ eহল পূর্ণসংখ্যার তালিকা, তালিকার পূর্ণসংখ্যা d(এনকোড / ডিকোড)।
orlp

আমি এই সমাধানটি পছন্দ করি।
ফাঁস নুন

0

রেটিনা, 17 + 23 = 40 বাইট

পূর্ণসংখ্যার তালিকা থেকে:

\d+
$&$*0
^
1

1

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

পূর্ণসংখ্যা থেকে তালিকা পর্যন্ত:

^1

S`1
m`^(0*)
$.1
¶
<space>

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

ক্যাসের্গের অ্যালগরিদম ব্যবহার করে ।

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