বৈদ্যুতিন কনফিগারেশন


18

বৈদ্যুতিন কনফিগারেশন

আপনার মিশনটি হ'ল কোনও উপাদানের পারমাণবিক সংখ্যাটিকে ইনপুট হিসাবে গ্রহণ করা এবং এর ইলেক্ট্রন কনফিগারেশন আউটপুট করা (যেমন 2,8,8,2ক্যালসিয়ামের জন্য)।

ইনপুট

1 থেকে 118 পর্যন্ত একটি পারমাণবিক সংখ্যা You আপনি বৈধ ইনপুট ধরে নিতে পারেন। পরমাণুকে চার্জ করা হয় না (এতে প্রোটনের মতো ইলেকট্রন রয়েছে)। আপনি কোনও চলকটিতে ইনপুটটি সঞ্চয় করার আশা করতে পারেন না এবং আপনাকে অবশ্যই একটি সম্পূর্ণ প্রোগ্রাম লিখতে হবে।

আউটপুট

প্রতিটি খালি খালি ইলেকট্রন শেলের ইলেক্ট্রনের সংখ্যা। আমি আউটপুট বিন্যাসের সাথে বেশ লেন্সিয়েন্ট হব; নিম্নলিখিত সমস্ত গ্রহণযোগ্য, যেমন আপনি সংখ্যা পৃথক করতে কোনও যতিচিহ্ন বা শ্বেত স্পেস ব্যবহার করতে পারেন, এবং যে কোনও ধরণের বন্ধনী অনুমোদিত। কোনটি ব্যবহৃত হয় তা নির্দিষ্ট করুন।

  • 2,8,8,2
  • 2.8.8.2
  • 2, 8, 8, 2,
  • [2,8,8,2]
  • 2 8 8 2
  • ([2 [8]] [8] 2)

কিভাবে ইলেক্ট্রন কাজ করে

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

ক্যালসিয়াম (পারমাণবিক সংখ্যা 20) পর্যন্ত এবং এর অন্তর্ভুক্ত, শাঁসগুলি সমানভাবে এবং ক্রমে পূরণ করে; অভ্যন্তরীণ শেলটি প্রথমে তার ক্ষমতায় 2, দ্বিতীয় থেকে 8, তারপরে তৃতীয় থেকে 8 এবং শেষ থেকে 2 তে পূর্ণ হয় cal ক্যালসিয়ামের বৈদ্যুতিন কনফিগারেশন 2,8,8,2

ক্যালসিয়ামের পরে, জিনিসগুলি জটিল হয়ে যায়; আরও ইলেক্ট্রনগুলি তৃতীয় শেলের মধ্যে যায়, শেষটি নয়। জিনিসগুলি আরও খারাপ করার জন্য, ভেনিয়াম (23) 2,8,11,2, ক্রোমিয়াম (24) 2,8,13,1এবং ম্যাঙ্গানিজ (25) হয় 2,8,13,2

কিছু সামঞ্জস্যপূর্ণ নিদর্শন রয়েছে, তবে: একটি মহৎ গ্যাস এবং এর আগে সাতটি উপাদান বাইরের শেলের সবসময় ইলেক্ট্রনের সংখ্যা 1 থেকে 8 পর্যন্ত বৃদ্ধি পাবে উদাহরণস্বরূপ:

  • সোনার (79): 2,8,18,32,18,1
  • পারদ (80): 2,8,18,32,18,2
  • ...
  • অ্যাস্টাটাইন (85): 2,8,18,32,18,7
  • রেডন (86): 2,8,18,32,18,8

বিধি

  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • এই চ্যালেঞ্জের আগে উপস্থিত গ্রন্থাগারগুলি অনুমোদিত।
  • যে কোনও অন্তর্নির্মিত বা লাইব্রেরি বৈশিষ্ট্যগুলি বিশেষত পরমাণু, অণু বা রসায়ন সম্পর্কিত বিষয়গুলি নিষিদ্ধ।
  • বাইট জিতে সর্বনিম্ন কোড দৈর্ঘ্য।
  • লিঙ্কযুক্ত উত্সে, 103-118 উপাদানগুলির কনফিগারেশনগুলি (?) এর সাথে চিহ্নিত করা হয়েছে , যেমন তাদের পূর্বাভাস দেওয়া হয়েছে, এবং উপাদানগুলি এটি পরীক্ষা করার জন্য খুব অস্থির। এই চ্যালেঞ্জের জন্য, তাদের সঠিক বলে ধরে নিন।
  • আপনি অংশ বা আপনার সমস্ত ডেটা হার্ডকোড করতে পারেন।
  • [নতুন বিধি] আপনি যদি তাদের ফাইলগুলিতে নিয়ন্ত্রণের অক্ষর ব্যবহার করেন তবে দয়া করে আপনার ফাইলগুলির একটি বেস 64 বা এক্সএক্সডি ডাম্প সরবরাহ করুন (যতগুলি উত্তর মনে হচ্ছে)

উইনার: ডেনিসের সিজে্যামের উত্তর ৮০ বাইটে !

উত্তর:


14

সিজেম, 87 83 82 80 বাইট

0"hTHøìð¼Ä¿håêÛ¾ªÔ¼"256b6b5a/4a8**li<{[33:B_B*65_B*1]=\_B%8=B\#*+}/Bb0-`

উপরের কোডটিতে অপ্রিনিত অক্ষর রয়েছে।

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন । যদি লিঙ্কটি আপনার পক্ষে কাজ করে না, তবে এই পেস্টটি থেকে অনুলিপি করুন

পটভূমি

Nth পরমাণুর বৈদ্যুতিন কনফিগারেশনটি পেতে , আমরা বৈদ্যুতিন ছাড়াই একটি পরমাণু দিয়ে শুরু করি এবং এটিতে N ট্রান্সফর্মেশন প্রয়োগ করি।

প্রয়োগের বাইট গণনা হ্রাস করতে, আমরা একটি পূর্ণসংখ্যা হিসাবে একটি পরমাণুর বৈদ্যুতিন কনফিগারেশন উপস্থাপন। 33 ভিত্তিতে যে পূর্ণসংখ্যার প্রতিটি অঙ্ক নির্দিষ্ট শেলগুলিতে ইলেক্ট্রনের সংখ্যার সাথে মিলে যায়; সর্বনিম্ন উল্লেখযোগ্য সংখ্যাটি বাইরের শেলকে উপস্থাপন করে।

উদাহরণস্বরূপ, মলিবডেনাম (42) এর ইলেক্ট্রন কনফিগারেশনটি [2 8 18 13 1] । এটি পূর্ণসংখ্যার সাথে মিল 2 = 33 4 + 8 × 33 3 + 18 × 33 2 + 13 × 33 + 1 = 26,79,370

প্যালাডিয়াম (48) একটি বিশেষ ক্ষেত্রে, যা আমরা হিসেবে বিবেচনা করা হয় [2 8 18 18 0] পরিবর্তে [2 8 18 18]

এই সুবিধাজনক উপস্থাপনটি সরল অঙ্কগুলিতে পূর্বোক্ত রূপান্তরগুলি হ্রাস করে:

  • R += 1 (বাইরের শেলটিতে একটি ইলেকট্রন যুক্ত করুন)
  • R += 33 (দ্বিতীয় বাইরের শেলটিতে একটি ইলেকট্রন যুক্ত করুন)
  • R += 65 (দ্বিতীয় বাইরের শেলটিতে দুটি ইলেকট্রন যুক্ত করুন; প্রথমটি থেকে একটি সরান)
  • R += 1089 (তৃতীয় বাইরের শেলটিতে একটি ইলেক্ট্রন যুক্ত করুন)
  • R += 2145 (তৃতীয় বাইরের শেলটিতে দুটি ইলেকট্রন যুক্ত করুন; দ্বিতীয় থেকে একটি অপসারণ করুন)
  • R *= 33, R += 1 (একটি একক ইলেকট্রনযুক্ত একটি নতুন শেল যুক্ত করুন)

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

[1 1 65 1 1 1 1 1 1 1 2369 1 1 1 1 1 1 1 78401 1 33 33 33 65 1 33 33 33 65 1 1 1 1 1 1 1 2598017 1 33 33 65 33 1 65 33 65 1 1 1 1 1 1 1 1 85745345 1 33 1089 2145 1089 1089 1089 1089 33 2145 1089 1089 1089 1089 1089 33 33 33 33 33 33 33 65 33 1 1 1 1 1 1 1 2830095041 1 33 33 2145 1089 1089 2145 1089 33 2145 1089 1089 1089 1089 1089 65 1 33 33 33 33 33 33 65 1 1 1 1 1 1 1]

এই অ্যারের অনন্য পার্থক্যগুলি নিম্নলিখিত:

[1 33 65 1089 2145 2369 78401 2598017 85745345 2830095041]

নতুন শেল যুক্ত করা হলে প্রথম 5 টি বাদে সমস্ত ঘটনাগুলির সাথে মিল; এগুলি বাদ দেওয়া যেতে পারে 33 টি দিয়ে গুণিত করা এবং 1 টি প্রদানের ফলে পার্থক্য যুক্ত করার একই ফলাফল পাওয়া যায়।

যেহেতু আমাদের যদি একটি নতুন শেল যুক্ত করতে হয় এবং কেবলমাত্র যদি বর্তমান পরমাণুর বাইরের শেলের মধ্যে ঠিক আটটি ইলেক্ট্রন থাকে ( তিনি (2) ল (3) বাদে , যা 65 যুক্ত হিসাবে এনকোড করা যায় ), তবে আমরা এনকোড করতে পারি এই রূপান্তরগুলি 1 যুক্ত হিসাবে এবং ফ্লাইতে গুণনের প্রয়োজনীয়তা নির্ধারণ করে।

এইভাবে, যদি আমরা সংজ্ঞায়িত করি

X := 0
I := 0
L := [33 1089 65 2145 1]
T := [1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 3 1 0 0 0 3 1 1 1 1 1 1 1 1 1 0 0 3 0 1 3 0 3 1 1 1 1 1 1 1 1 1 1 0 2 4 2 2 2 2 0 4 2 2 2 2 2 0 0 0 0 0 0 0 3 0 1 1 1 1 1 1 1 1 1 0 0 4 2 2 4 2 0 4 2 2 2 2 2 3 1 0 0 0 0 0 0 3 1 1 1 1 1 1 1]

নীচে Nth পরমাণুর বৈদ্যুতিন কনফিগারেশন গণনা করা যেতে পারে:

while(X < N):
    R *= (33 ** (R % 33 == 8))
    R += L[T[X]]
    X += 1

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

" Push 0, the initial value of R; convert the following array into an integer by
  considering it a base 256 number, then back to the array of its digits in base 6.       ";

0"hTHøìð¼Ä¿håêÛ¾ªÔ¼"256b6b

" Replace each 5 in the resulting array by [4 4 4 4 4 4 4 4]. This yields the array T
  from the above section.                                                                 ";

5a/4a8**

" Read an integer N from STDIN and discard all but the first N elements of T.             ";

li<

" For each element Y of the remainder of T, do the following:                             ";

{
    [33:B_B*65_B*1]=\   " Define B := 33, push L, retrieve L[Y] and swap it with R.       ";

    _B%8=B\#*           " Execute R *= 33 ** (R % 33 == 8).                               ";

    +                   " Execute R += L[Y].                                              ";
}/

" Convert R into the array of its digits in base 33, remove eventual zeros (Palladium)
  and replace the resulting array with its string representation.                         ";

Bb0-`

উদাহরণ রান

$ base64 -d > electrons.cjam <<< MCJoVEgM+OzwErzEGL9o5erbvqrUB4YZhrwRIjI1NmI2YjVhLzRhOCoqbGk8e1szMzpCX0IqNjVfQioxXT1cX0IlOD1CXCMqK30vQmIwLWA=
$ cksum electrons.cjam
3709391992 80 electrons.cjam
$ for i in {1..118}; do LANG=en_US cjam electrons.cjam <<< $i; echo; done
[1]
[2]
[2 1]
[2 2]
[2 3]
[2 4]
[2 5]
[2 6]
[2 7]
[2 8]
[2 8 1]
[2 8 2]
[2 8 3]
[2 8 4]
[2 8 5]
[2 8 6]
[2 8 7]
[2 8 8]
[2 8 8 1]
[2 8 8 2]
[2 8 9 2]
[2 8 10 2]
[2 8 11 2]
[2 8 13 1]
[2 8 13 2]
[2 8 14 2]
[2 8 15 2]
[2 8 16 2]
[2 8 18 1]
[2 8 18 2]
[2 8 18 3]
[2 8 18 4]
[2 8 18 5]
[2 8 18 6]
[2 8 18 7]
[2 8 18 8]
[2 8 18 8 1]
[2 8 18 8 2]
[2 8 18 9 2]
[2 8 18 10 2]
[2 8 18 12 1]
[2 8 18 13 1]
[2 8 18 13 2]
[2 8 18 15 1]
[2 8 18 16 1]
[2 8 18 18]
[2 8 18 18 1]
[2 8 18 18 2]
[2 8 18 18 3]
[2 8 18 18 4]
[2 8 18 18 5]
[2 8 18 18 6]
[2 8 18 18 7]
[2 8 18 18 8]
[2 8 18 18 8 1]
[2 8 18 18 8 2]
[2 8 18 18 9 2]
[2 8 18 19 9 2]
[2 8 18 21 8 2]
[2 8 18 22 8 2]
[2 8 18 23 8 2]
[2 8 18 24 8 2]
[2 8 18 25 8 2]
[2 8 18 25 9 2]
[2 8 18 27 8 2]
[2 8 18 28 8 2]
[2 8 18 29 8 2]
[2 8 18 30 8 2]
[2 8 18 31 8 2]
[2 8 18 32 8 2]
[2 8 18 32 9 2]
[2 8 18 32 10 2]
[2 8 18 32 11 2]
[2 8 18 32 12 2]
[2 8 18 32 13 2]
[2 8 18 32 14 2]
[2 8 18 32 15 2]
[2 8 18 32 17 1]
[2 8 18 32 18 1]
[2 8 18 32 18 2]
[2 8 18 32 18 3]
[2 8 18 32 18 4]
[2 8 18 32 18 5]
[2 8 18 32 18 6]
[2 8 18 32 18 7]
[2 8 18 32 18 8]
[2 8 18 32 18 8 1]
[2 8 18 32 18 8 2]
[2 8 18 32 18 9 2]
[2 8 18 32 18 10 2]
[2 8 18 32 20 9 2]
[2 8 18 32 21 9 2]
[2 8 18 32 22 9 2]
[2 8 18 32 24 8 2]
[2 8 18 32 25 8 2]
[2 8 18 32 25 9 2]
[2 8 18 32 27 8 2]
[2 8 18 32 28 8 2]
[2 8 18 32 29 8 2]
[2 8 18 32 30 8 2]
[2 8 18 32 31 8 2]
[2 8 18 32 32 8 2]
[2 8 18 32 32 10 1]
[2 8 18 32 32 10 2]
[2 8 18 32 32 11 2]
[2 8 18 32 32 12 2]
[2 8 18 32 32 13 2]
[2 8 18 32 32 14 2]
[2 8 18 32 32 15 2]
[2 8 18 32 32 16 2]
[2 8 18 32 32 18 1]
[2 8 18 32 32 18 2]
[2 8 18 32 32 18 3]
[2 8 18 32 32 18 4]
[2 8 18 32 32 18 5]
[2 8 18 32 32 18 6]
[2 8 18 32 32 18 7]
[2 8 18 32 32 18 8]

1
পরিশ্রমের নিখুঁত পরিমাণের জন্য একটি উত্সাহ, স্যার। ;)
কোতো

6

গল্ফস্ক্রিপ্ট (by৯ বাইট)

আউটপুট ফর্ম হয়

[2 8 18 18]

এটি একটি যাদু স্ট্রিং ব্যবহার করে যাতে মুদ্রণযোগ্য অক্ষরগুলি থাকে তাই আমি স্ক্রিপ্টটি xxd ফর্ম্যাটে দিচ্ছি:

0000000: 7e30 5c27 0193 ca05 528e 6b25 e461 4d12  ~0\'....R.k%.aM.
0000010: 3195 9abf c9a4 bfad 588b d876 5e72 c82a  1.......X..v^r.*
0000020: 2dd3 6e92 4940 e00b 80dc 71f6 fc97 2732  -.n.I@....q...'2
0000030: 3536 6261 7365 2037 6261 7365 3c7b 2731  56base 7base<{'1
0000040: 0a29 0a5c 295c 0a2b 310a 2b29 0a40 2940  .).\)\.+1.+).@)@
0000050: 400a 402b 5c28 3227 6e2f 3d7e 7d2f 5d60  @.@+\(2'n/=~}/]`

জন্য অনলাইন পরীক্ষামূলক আমি বেরিয়ে সঙ্গে জাদু স্ট্রিং লিখছি:

"\x01\x93\xCA\x05R\x8Ek%\xE4aM\x121\x95\x9A\xBF\xC9\xA4\xBF\xADX\x8B\xD8v^r\xC8*-\xD3n\x92I@\xE0\v\x80\xDCq\xF6\xFC\x97"

আপনি যখন ব্রাউজারের টেক্সারিগুলিতে অক্ষরগুলি আটকে দেওয়ার সমস্যায় পড়ছেন না তখন এটি সমান।

পদ্ধতির মধ্যে রয়েছে 7 টি নির্দেশাবলী সহ ভার্চুয়াল মেশিন তৈরি করা, যার প্রতিটিই ইলেক্ট্রন গণনাগুলির একটি তালিকা পরিচালনা করে। তারপরে উপাদানটির জন্য nআমরা একটি ইলেকট্রন গণনা তালিকা দিয়ে শুরু করি এবং যাদুর স্ট্রিং দ্বারা এনকোডযুক্ত তালিকা থেকে 0প্রথম nনির্দেশাবলী চালিত করি ।

নির্দেশাবলী হ'ল:

  1. 1 টি ইলেক্ট্রন সহ একটি নতুন শেল যুক্ত করুন: 1
  2. বাইরের শেলটিতে একটি ইলেকট্রন যুক্ত করুন: )
  3. পরের থেকে বাইরের শেলটিতে একটি ইলেক্ট্রন যুক্ত করুন: \)\
  4. দুই বাইরের শেল একত্রিত করুন এবং এক ইলেক্ট্রন যোগ করুন: +)। (এটি কেবল প্যালেডিয়ামের জন্য ব্যবহৃত হয়)।
  5. দুটি বাইরের শেল একত্রিত করুন এবং 1 টি ইলেকট্রন দিয়ে একটি নতুন শেল তৈরি করুন: +1
  6. তৃতীয় শেলটিতে একটি ইলেকট্রন যুক্ত করুন: @)@@
  7. তৃতীয় শেলের সাথে একটি ইলেক্ট্রন যুক্ত করুন এবং দ্বিতীয় শেল থেকে একটি তৃতীয় শেলের দিকে সরান। এটি কেবল তখনই ঘটে যখন বাইরের শেলটিতে 2 টি ইলেক্ট্রন থাকে তাই এটি @+\(2দীর্ঘতর পরিবর্তে প্রয়োগ করা হয়@2+@(@

আপনার 7 নির্দেশাবলী কি?
COTO

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

আমি কি এসটিডিএন-তে ইনপুট সরবরাহ করব? (এবং তারপরে এটি স্ট্যাকের উপরে উপস্থিত হবে)?

@ প্রফেসরফিশ: হ্যাঁ গল্ফস্ক্রিপ্ট স্বয়ংক্রিয়ভাবে স্ট্যাকের মধ্যে STDIN থেকে ইনপুট রাখে।
ডেনিস

5

পাইথন 2 (46 + 271 = 327)

কোড:

print open('f').read().decode('zip').split(';')[input()]

ফাইল f, নিম্নলিখিত বাইনারি আবর্জনা (এই চার্ট কোডগুলি) ধারণ করে

120, 156, 101, 146, 219, 21, 195, 32, 12, 67, 87, 233, 8, 193, 188, 204, 201, 254, 123, 21, 40, 46, 146, 253, 65, 163, 171, 10, 98, 199, 188, 233, 149, 87, 62, 243, 247, 179, 158, 121, 174, 50, 87, 157, 171, 205, 213, 231, 210, 181, 118, 66, 119, 70, 119, 74, 119, 78, 119, 82, 119, 86, 127, 233, 147, 183, 29, 182, 103, 156, 103, 122, 76, 36, 19, 249, 68, 167, 56, 78, 49, 81, 77, 52, 19, 118, 110, 210, 235, 100, 19, 197, 68, 53, 209, 76, 116, 19, 250, 23, 247, 36, 56, 107, 192, 139, 30, 208, 114, 211, 183, 96, 172, 121, 87, 123, 253, 6, 90, 175, 66, 23, 118, 66, 15, 216, 6, 118, 130, 205, 96, 63, 216, 18, 119, 197, 141, 185, 222, 6, 146, 36, 76, 138, 16, 101, 162, 66, 84, 29, 225, 153, 157, 254, 163, 90, 100, 32, 229, 135, 136, 106, 201, 226, 104, 16, 225, 136, 22, 38, 70, 97, 204, 140, 133, 177, 50, 246, 251, 33, 23, 170, 71, 97, 204, 140, 133, 177, 50, 54, 198, 206, 168, 14, 253, 155, 195, 187, 135, 55, 220, 103, 145, 199, 69, 230, 188, 157, 225, 63, 44, 207, 121, 25, 53, 26, 110, 75, 247, 9, 95, 170, 27, 187, 248, 201, 75, 28, 126, 152, 255, 111, 232, 41, 56, 62, 147, 130, 35, 193, 201, 193, 41, 193, 169, 193, 105, 193, 209, 80, 79, 172, 153, 111, 72, 188, 36, 241, 158, 196, 171, 18, 111, 203, 185, 16, 95, 151, 67, 8, 97

করুন Base64-:

eJxlktsVwyAMQ1fpCMG8zMn+exUoLpL9QaOrCmLHvOmVVz7z97Oeea4yV52rzdXn0rV2QndGd0p3
TndSd1Z/6ZO3HbZnnGd6TCQT+USnOE4xUU00E3Zu0utkE8VENdFMdBP6F/ckOGvAix7QctO3YKx5
V3v9BlqvQhd2Qg/YBnaCzWA/2BJ3xY253gaSJEyKEGWiQlQd4Zmd/qNaZCDlh4hqyeJoEOGIFiZG
YcyMhbEy9vshF6pHYcyMhbEyNsbOqA79m8O7hzfcZ5HHRea8neE/LM95GTUabkv3CV+qG7v4yUsc
fpj/b+gpOD6TgiPBycEpwanBacHRUE+smW9IvCTxnsSrEm/LuRBfl0MIYQ==

অনুরোধে, এটি এখন একটি ফাংশন না হয়ে একটি সম্পূর্ণ প্রোগ্রাম।

পুরানো উত্তর: পাইথন (খালি বেসলাইন, 422):

f=lambda n:'eJxlktsVwyAMQ1fpCMG8zMn+exUoLpL9QaOrCmLHvOmVVz7z97Oeea4yV52rzdXn0rV2QndGd0p3TndSd1Z/6ZO3HbZnnGd6TCQT+USnOE4xUU00E3Zu0utkE8VENdFMdBP6F/ckOGvAix7QctO3YKx5V3v9BlqvQhd2Qg/YBnaCzWA/2BJ3xY253gaSJEyKEGWiQlQd4Zmd/qNaZCDlh4hqyeJoEOGIFiZGYcyMhbEy9vshF6pHYcyMhbEyNsbOqA79m8O7hzfcZ5HHRea8neE/LM95GTUabkv3CV+qG7v4yUscfpj/b+gpOD6TgiPBycEpwanBacHRUE+smW9IvCTxnsSrEm/LuRBfl0MIYQ=='.decode('base64').decode('zip').split(';')[n]

জিপের সামগ্রী:

>>>'eJxlktsVwyAMQ1fpCMG8zMn+exUoLpL9QaOrCmLHvOmVVz7z97Oeea4yV52rzdXn0rV2QndGd0p3TndSd1Z/6ZO3HbZnnGd6TCQT+USnOE4xUU00E3Zu0utkE8VENdFMdBP6F/ckOGvAix7QctO3YKx5V3v9BlqvQhd2Qg/YBnaCzWA/2BJ3xY253gaSJEyKEGWiQlQd4Zmd/qNaZCDlh4hqyeJoEOGIFiZGYcyMhbEy9vshF6pHYcyMhbEyNsbOqA79m8O7hzfcZ5HHRea8neE/LM95GTUabkv3CV+qG7v4yUscfpj/b+gpOD6TgiPBycEpwanBacHRUE+smW9IvCTxnsSrEm/LuRBfl0MIYQ=='.decode('base64').decode('zip')
';1;2;2 1;2 2;2 3;2 4;2 5;2 6;2 7;2 8;2 8 1;2 8 2;2 8 3;2 8 4;2 8 5;2 8 6;2 8 7;2 8 8;2 8 8 1;2 8 8 2;2 8 9 2;2 8 10 2;2 8 11 2;2 8 13 1;2 8 13 2;2 8 14 2;2 8 15 2;2 8 16 2;2 8 18 1;2 8 18 2;2 8 18 3;2 8 18 4;2 8 18 5;2 8 18 6;2 8 18 7;2 8 18 8;2 8 18 8 1;2 8 18 8 2;2 8 18 9 2;2 8 18 10 2;2 8 18 12 1;2 8 18 13 1;2 8 18 13 2;2 8 18 15 1;2 8 18 16 1;2 8 18 18;2 8 18 18 1;2 8 18 18 2;2 8 18 18 3;2 8 18 18 4;2 8 18 18 5;2 8 18 18 6;2 8 18 18 7;2 8 18 18 8;2 8 18 18 8 1;2 8 18 18 8 2;2 8 18 18 9 2;2 8 18 19 9 2;2 8 18 21 8 2;2 8 18 22 8 2;2 8 18 23 8 2;2 8 18 24 8 2;2 8 18 25 8 2;2 8 18 25 9 2;2 8 18 27 8 2;2 8 18 28 8 2;2 8 18 29 8 2;2 8 18 30 8 2;2 8 18 31 8 2;2 8 18 32 8 2;2 8 18 32 9 2;2 8 18 32 10 2;2 8 18 32 11 2;2 8 18 32 12 2;2 8 18 32 13 2;2 8 18 32 14 2;2 8 18 32 15 2;2 8 18 32 17 1;2 8 18 32 18 1;2 8 18 32 18 2;2 8 18 32 18 3;2 8 18 32 18 4;2 8 18 32 18 5;2 8 18 32 18 6;2 8 18 32 18 7;2 8 18 32 18 8;2 8 18 32 18 8 1;2 8 18 32 18 8 2;2 8 18 32 18 9 2;2 8 18 32 18 10 2;2 8 18 32 20 9 2;2 8 18 32 21 9 2;2 8 18 32 22 9 2;2 8 18 32 24 8 2;2 8 18 32 25 8 2;2 8 18 32 25 9 2;2 8 18 32 27 8 2;2 8 18 32 28 8 2;2 8 18 32 29 8 2;2 8 18 32 30 8 2;2 8 18 32 31 8 2;2 8 18 32 32 8 2;2 8 18 32 32 10 1;2 8 18 32 32 10 2;2 8 18 32 32 11 2;2 8 18 32 32 12 2;2 8 18 32 32 13 2;2 8 18 32 32 14 2;2 8 18 32 32 15 2;2 8 18 32 32 16 2;2 8 18 32 32 18 1;2 8 18 32 32 18 2;2 8 18 32 32 18 3;2 8 18 32 32 18 4;2 8 18 32 32 18 5;2 8 18 32 32 18 6;2 8 18 32 32 18 7;2 8 18 32 32 18 8'
>>>len(_)
1478

এবং একটি দ্রুত পরীক্ষা:

map(f, range(119))
Out[48]: 
['',
 '1',
 '2',
 '2 1',
 '2 2',
 '2 3',
 '2 4',
 '2 5',
 '2 6',
 '2 7',
 '2 8',
 '2 8 1',
 '2 8 2',
 '2 8 3',
 '2 8 4',
 '2 8 5',
 '2 8 6',
 '2 8 7',
 '2 8 8',
 '2 8 8 1',
 '2 8 8 2',
 '2 8 9 2',
 '2 8 10 2',
 '2 8 11 2',
 '2 8 13 1',
 '2 8 13 2',
 '2 8 14 2',
 '2 8 15 2',
 '2 8 16 2',
 '2 8 18 1',
 '2 8 18 2',
 '2 8 18 3',
 '2 8 18 4',
 '2 8 18 5',
 '2 8 18 6',
 '2 8 18 7',
 '2 8 18 8',
 '2 8 18 8 1',
 '2 8 18 8 2',
 '2 8 18 9 2',
 '2 8 18 10 2',
 '2 8 18 12 1',
 '2 8 18 13 1',
 '2 8 18 13 2',
 '2 8 18 15 1',
 '2 8 18 16 1',
 '2 8 18 18',
 '2 8 18 18 1',
 '2 8 18 18 2',
 '2 8 18 18 3',
 '2 8 18 18 4',
 '2 8 18 18 5',
 '2 8 18 18 6',
 '2 8 18 18 7',
 '2 8 18 18 8',
 '2 8 18 18 8 1',
 '2 8 18 18 8 2',
 '2 8 18 18 9 2',
 '2 8 18 19 9 2',
 '2 8 18 21 8 2',
 '2 8 18 22 8 2',
 '2 8 18 23 8 2',
 '2 8 18 24 8 2',
 '2 8 18 25 8 2',
 '2 8 18 25 9 2',
 '2 8 18 27 8 2',
 '2 8 18 28 8 2',
 '2 8 18 29 8 2',
 '2 8 18 30 8 2',
 '2 8 18 31 8 2',
 '2 8 18 32 8 2',
 '2 8 18 32 9 2',
 '2 8 18 32 10 2',
 '2 8 18 32 11 2',
 '2 8 18 32 12 2',
 '2 8 18 32 13 2',
 '2 8 18 32 14 2',
 '2 8 18 32 15 2',
 '2 8 18 32 17 1',
 '2 8 18 32 18 1',
 '2 8 18 32 18 2',
 '2 8 18 32 18 3',
 '2 8 18 32 18 4',
 '2 8 18 32 18 5',
 '2 8 18 32 18 6',
 '2 8 18 32 18 7',
 '2 8 18 32 18 8',
 '2 8 18 32 18 8 1',
 '2 8 18 32 18 8 2',
 '2 8 18 32 18 9 2',
 '2 8 18 32 18 10 2',
 '2 8 18 32 20 9 2',
 '2 8 18 32 21 9 2',
 '2 8 18 32 22 9 2',
 '2 8 18 32 24 8 2',
 '2 8 18 32 25 8 2',
 '2 8 18 32 25 9 2',
 '2 8 18 32 27 8 2',
 '2 8 18 32 28 8 2',
 '2 8 18 32 29 8 2',
 '2 8 18 32 30 8 2',
 '2 8 18 32 31 8 2',
 '2 8 18 32 32 8 2',
 '2 8 18 32 32 10 1',
 '2 8 18 32 32 10 2',
 '2 8 18 32 32 11 2',
 '2 8 18 32 32 12 2',
 '2 8 18 32 32 13 2',
 '2 8 18 32 32 14 2',
 '2 8 18 32 32 15 2',
 '2 8 18 32 32 16 2',
 '2 8 18 32 32 18 1',
 '2 8 18 32 32 18 2',
 '2 8 18 32 32 18 3',
 '2 8 18 32 32 18 4',
 '2 8 18 32 32 18 5',
 '2 8 18 32 32 18 6',
 '2 8 18 32 32 18 7',
 '2 8 18 32 32 18 8']

এটি ভাল, তবে দয়া করে এটি একটি সম্পূর্ণ প্রোগ্রাম করুন (যা স্টাডিন বা আর্গুমেন্ট থেকে ইনপুটতে পড়ে); এছাড়াও, আপনি বেস 64 এড়ানোর জন্য একটি বাহ্যিক ফাইল ব্যবহার করতে পারেন (তবে ফাইল এবং এর নাম কোড দৈর্ঘ্যের সাথে গণনা করা হয়)

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

আমি কলমোগোরভ-জটিলতার ট্যাগটি মিস করেছি। এবং এখানে আমি বিভিন্ন ভ্যালেন্স সাবহেলগুলির শক্তির স্তরটি বোঝার চেষ্টা করছি এবং আমি এমনকি পদার্থবিদও নই। :I
সম্মিলিত

"পুরানো উত্তর" কেবল পাইথন 2 এ কাজ করে। আমি নতুনটি পরীক্ষা করে দেখিনি - আপনি কি ফাইলটির একটি বেস 64 পেয়েছেন fযাতে আমি এটি পুনরুত্পাদন করতে পারি?

নিঃসন্দেহে নতুনটি হ'ল পাইথন 2 কেবল ( printকোনও ফাংশনের পরিবর্তে মূল শব্দ হিসাবে)।
Sepuʎs

3

ম্যাটল্যাব - 248 244 241 178 + 44 = 222 বাইট

minified:

i=1;a=fread(fopen('a'));b=fix(a/7);a=a-7*b+1;d=0*a;for n=1:input(''),A=a(i);if b(i),m=1;i=i+(d(A)+2>b(i));else A=A-[1;0];m=[2;-1];i=i+1;end;d(A)=d(A)+m;end;fprintf('%d ',d(~~d));

সম্প্রসারিত:

i = 1;
a = fread( fopen( 'a' ) );
b = fix( a/7 );
a = a-7*b+1;
d = 0*a;
for n = 1:input('')
    A = a(i);
    if b(i)
        m = 1;
        i = i + (d(A)+2 > b(i));
    else
        A = A - [1; 0];
        m = [2; -1];
        i = i + 1;
    end
    d(A) = d(A) + m;
end
fprintf( '%d ', d(~~d) );

বাইনারি ফাইল নির্ভরতা (ফাইলের নাম ' '):

0e 39 3a 11  4f 03 72 03  3b 12 49 04  5e 12 04 73
04 3c 13 43  88 04 b2 43  04 e3 6d 05  82 3d 14 4b
05 9e 05 b3  44 05 e4 06  14 75 06 3e

আমি বিশ্বাস করি এটি একটি "সম্পূর্ণ প্রোগ্রাম" যাতে এটি কমান্ডলাইন থেকে আহ্বান করা যেতে পারে, এটি থেকে পড়ে stdinএবং আউটপুট হয় stdout

এটি বৈদ্যুতিন কনফিগারেশন তৈরি করতে এক ধরণের দ্বি-নির্দেশিকা বাইটকোড ব্যবহার করে। দুটি নির্দেশ

inc D until N      (i.e. increment valence D by 1; advance to next instruction when D = N)

এবং

pulldown D         (i.e. pull down one electron from valence D, thereby decrementing it by 1
                         and incrementing valence D-1 by 2)

নির্দেশাবলী দুটি অ্যারে এনকোড করা হয়েছে। প্রথম Dসব ক্ষেত্রে যুক্তি সংরক্ষণ করে। দ্বিতীয়টি Nযুক্তিটি সংরক্ষণ করে বা 0নির্দেশ pulldownনির্দেশ করে, যেহেতু N = 0কখনও যুক্তি হিসাবে ব্যবহৃত হয় না।

নির্দেশাবলীর সম্পূর্ণ ক্রম হ'ল:

inc 1 until 2
inc 2 until 8
inc 3 until 8
inc 4 until 2
inc 3 until 11
pulldown 4

inc 3 until 16
pulldown 4

inc 4 until 8
inc 5 until 2
inc 4 until 10
pulldown 5

inc 4 until 13
inc 5 until 2
pulldown 5

inc 4 until 16
pulldown 5

inc 5 until 8
inc 6 until 2
inc 5 until 9
inc 4 until 19
pulldown 5

inc 4 until 25
inc 5 until 9
pulldown 5

inc 4 until 32
inc 5 until 15
pulldown 6

inc 5 until 18
inc 6 until 8
inc 7 until 2
inc 6 until 10
pulldown 6

inc 5 until 22
pulldown 6

inc 5 until 25
inc 6 until 9
pulldown 6

inc 5 until 32
pulldown 7

inc 7 until 2
inc 6 until 16
pulldown 7

inc 7 until 8

এটি লক্ষণীয় যে আমরা যদি ম্যাটল্যাব-নির্দিষ্ট অক্ষর সেটটি ব্যবহার করি তবে ২৮ টি অক্ষর বাদ দেওয়া যেতে পারে, তবে আমি চেয়েছিলাম যে আমার সমাধানটি কোনও বাহ্যিক ফাইল রেফারেন্স ছাড়াই স্ট্যাক এক্সচেঞ্জে প্লেটেক্সট হিসাবে উপস্থাপনযোগ্য হোক।

বাহ্যিক ফাইল রেফারেন্স এটি হয়।

নমুনা আউটপুট

39: 2 8 18 9 2

78: 2 8 18 32 17 1

117: 2 8 18 32 32 18 7

5: 2 3


আমি কীভাবে "বাইনারি ফাইল নির্ভরতা" পুনর্গঠন করব?

ফাইলটি আমি সাধারণ ক্রমে 44 টি বাইট কোডগুলি তালিকাভুক্ত করেছি, বাম থেকে ডানে, উপরে থেকে নীচে। ফাইলের নামটি কেবল "ক", কোনও এক্সটেনশন ছাড়াই। স্ক্রিপ্টটি চালিত হওয়ার সময় এটি কার্যকারী ডিরেক্টরিতে থাকা দরকার। আমি ডাউনলোডযোগ্য অনুলিপি syonidv.hodginsmedia.com/misc/a এ
COTO

2

পার্ল 5, 235 (-E এর জন্য 234 + 1)

Golfed:

@a=unpack'C*','ABR3S4sT5tU6';if(($-=<>)~~[unpack'C*',')*,-./9:@NOYZ[\]`g']){$.+=($-~~[46,90]);$p=2+$-/33;$->87|$-~~[57..64]&&($.*=-1);$o[$p]+=$.,$o[$p+1]-=$.}$%=($%=$a[$q]/8)>$-?$-:$%,$o[$a[$q++]&7]+=$%while($--=$%);$,=$";say@o

দ্রষ্টব্য: এই পোস্টের নীচে একটি হেক্স্স ডাম্প সরবরাহ করা হয়েছে, কারণ কিছু স্ট্রিং লিটারালগুলিতে নিয়ন্ত্রণের অক্ষর রয়েছে (যা একটি হেক্স সম্পাদকের মাধ্যমে প্রবেশ করা হয়েছিল)।

মন্তব্যে অসম্পূর্ণ:

$_=<>;
# For each byte, the first 5 bits are the number of spaces to fill at a time, the next 3 bits represent the shell number, minus 1.
# Values: 10 41 42 13 52 33 14 53 34 15 73 54 35 16 74 55 36
# The 1st shell takes 2 electrons
# Then the 2nd shell take 8, then the third takes 8...
@a=unpack'C*','ABR3S4sT5tU6';
# Contains the atomic numbers of abnormal elements
# Values: 18 1d 29 2a 2c 2d 2e 2f 39 3a 40 4e 4f 59 5a 5b 5c 5d 60 67
@b=unpack'C*',')*,-./9:@NOYZ[\]`g';
# if abnormal
if($_~~@b){
    # All abnormals, except element 46 and 90, only displace 1 electron
    $y=1+($_~~[46,90]);
    # Abnormals with atomic number less than 33 involve switches between shells 3 and 4
    # 33-65: 4 and 5
    # 66-98: 5 and 6
    # 99+ : 6 and 7
    $p = (3 + ~~($_/33)) - 1;
    # abnormals in these ranges move electrons from lower to higher
    # abnormals elsewhere do higher to lower
    if($_ >= 88 || $_ ~~ [57..64]){
        $y *= -1;
    }
    # move electrons
    $o[$p] += $y;
    $o[$p+1] -= $y;
}

    # extract max number of electrons to fill shell with
    # >> 3 is equivalent to /8 for integers; $% is always an integer.
    $% = $a[$q] / 8,
    # do not overfill
    $% = $% > $_ ? $_ : $%,
    # add electrons to shell
    $o[ $a[$q++] & 7 ] += $%
# reduce number of electrons left to fill shells with
while($_ -= $%);
# set list separator to space
$, = $";
# print list representing shells
say @o 

হেক্স ডাম্প:

0000000: 4061 3d75 6e70 6163 6b27 432a 272c 2710  @a=unpack'C*','.
0000010: 4142 1352 3314 5334 1573 5435 1674 5536  AB.R3.S4.sT5.tU6
0000020: 273b 6966 2828 242d 3d3c 3e29 7e7e 5b75  ';if(($-=<>)~~[u
0000030: 6e70 6163 6b27 432a 272c 2718 1d29 2a2c  npack'C*','..)*,
0000040: 2d2e 2f39 3a40 4e4f 595a 5b5c 5d60 6727  -./9:@NOYZ[\]`g'
0000050: 5d29 7b24 2e2b 3d28 242d 7e7e 5b34 362c  ]){$.+=($-~~[46,
0000060: 3930 5d29 3b24 703d 322b 242d 2f33 333b  90]);$p=2+$-/33;
0000070: 242d 3e38 377c 242d 7e7e 5b35 372e 2e36  $->87|$-~~[57..6
0000080: 345d 2626 2824 2e2a 3d2d 3129 3b24 6f5b  4]&&($.*=-1);$o[
0000090: 2470 5d2b 3d24 2e2c 246f 5b24 702b 315d  $p]+=$.,$o[$p+1]
00000a0: 2d3d 242e 7d24 253d 2824 253d 2461 5b24  -=$.}$%=($%=$a[$
00000b0: 715d 2f38 293e 242d 3f24 2d3a 2425 2c24  q]/8)>$-?$-:$%,$
00000c0: 6f5b 2461 5b24 712b 2b5d 2637 5d2b 3d24  o[$a[$q++]&7]+=$
00000d0: 2577 6869 6c65 2824 2d2d 3d24 2529 3b24  %while($--=$%);$
00000e0: 2c3d 2422 3b73 6179 406f                 ,=$";say@o

আমি কীভাবে হেক্সডাম্পের বিপরীত করব? (সম্ভবত বিপরীত এক্সএক্সডি ডাম্প বা বেস 64 করা ভাল)

@ প্রফেসরফিশ রিভার্সিবল এক্সএক্সডি ডাম্প যুক্ত হয়েছে
es1024

2

সিজেম, 309 289 বাইট

0000000: 22 cc b5 a3 1a f7 bd 07 1b 26 ce 73 16 55 87 08  "........&.s.U..
0000010: 27 d2 65 54 66 ac c1 38 ff de 95 d8 8a 77 6d 4e  '.eTf..8.....wmN
0000020: 0d 13 df bb b7 c6 8c ae 6b 32 4d b9 f1 7c b9 f1  ........k2M..|..
0000030: bc 68 2d 8a 5c 22 e6 5c 22 e1 d7 c9 80 ba a5 5d  .h-.\".\"......]
0000040: 64 24 47 0b aa 78 c9 13 a5 0a 65 41 08 f3 ee e3  d$G..x....eA....
0000050: 2e 58 92 19 5f 1a 80 fc d9 30 3b 51 99 c7 1b 51  .X.._....0;Q...Q
0000060: ba 0c 8a 3c 7d f0 60 1e d5 1c e7 2f 33 16 c8 1f  ...<}.`..../3...
0000070: e6 df 24 75 d1 51 e6 af 38 b4 f7 b1 63 77 14 8d  ..$u.Q..8...cw..
0000080: d3 69 bc 99 9e a5 98 56 53 e7 71 f7 48 76 7a 24  .i.....VS.q.Hvz$
0000090: a7 dc 5c 22 fc a6 55 05 30 e2 03 d6 a8 ef 1a 9f  ..\"..U.0.......
00000a0: e4 03 c6 a0 5e 60 be 01 2b ca 12 83 d4 64 69 3d  ....^`..+....di=
00000b0: a7 2e cc 59 5e 0c bb 69 b0 19 1d e1 f2 53 e4 1b  ...Y^..i.....S..
00000c0: 6e 6d cc 45 d3 1f cc 3c b7 1b 5f ca c8 d0 94 fe  nm.E...<.._.....
00000d0: 05 ea ae dc 98 9e 9a 47 a6 fa 3a 0e c3 45 ef 31  .......G..:..E.1
00000e0: 61 a0 7c 80 55 9a 5d 7a af 8e 51 e8 5c 79 c4 22  a.|.U.]z..Q.\y."
00000f0: 32 35 36 62 33 38 62 22 24 12 23 20 5c 22 12 21  256b38b"$.# \".!
0000100: 08 00 02 22 3a 69 32 2f 7b 5f 30 3d 5f 29 33 33  ...":i2/{_0=_)33
0000110: 3f 61 40 5c 2f 5c 2a 7d 2f 30 61 2f 6c 69 28 3d  ?a@\/\*}/0a/li(=
0000120: 60                                               <

সাধারণ রানগুলি (উদাহরণস্বরূপ 2 8 18 32) প্রতিস্থাপন 32 টিরও বেশি সংখ্যক পূর্ণসংখ্যার সাথে এবং সমস্ত কনফিগারেশনের অ্যারে বিবেচনা করে 38 টি বেস, যা বাইনারিতে এনকোড করা রয়েছে তা দিয়ে কাজ করে।

উদাহরণ রান

$ base64 -d > electrons.cjam <<< Isy1oxr3vQcbJs5zFlWHCCfSZVRmrME4/96V2Ip3bU4NE9+7t8aMrmsyTbnxfLnxvGgtilwi5lwi4dfJgLqlXWQkRwuqeMkTpQplQQjz7uMuWJIZXxqA/NkwO1GZxxtRugyKPH3wYB7VHOcvMxbIH+bfJHXRUeavOLT3sWN3FI3TabyZnqWYVlPncfdIdnokp9xcIvymVQUw4gPWqO8an+QDxqBeYL4BK8oSg9RkaT2nLsxZXgy7abAZHeHyU+Qbbm3MRdMfzDy3G1/KyNCU/gXqrtyYnppHpvo6DsNF7zFhoHyAVZpdeq+OUehcecQiMjU2YjM4YiIkEiMgXCISIQgAAiI6aTIve18wPV8pMzM/YUBcL1wqfS8wYS9saSg9YA==
$ cksum electrons.cjam 
3109698089 289 electrons.cjam
$ LANG=en_US cjam electrons.cjam <<< 42; echo
[2 8 18 13 1]
$ for i in {1..118}; do LANG=en_US cjam electrons.cjam <<< $i; echo; done | md5sum
d09cb34c282ee52c2466a6b80aa30d22  -
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.