রসায়ন 101 - পর্যায় সারণির পরিচিতি


24

প্রশ্ন

Given the atomic number of an elementgroup and periodনিম্নলিখিত উপাদানগুলির পর্যায় সারণী দ্বারা প্রদত্ত সেই উপাদানটির [1-118] আউটপুট আউটপুট দেয় ।

ল্যান্থানাইড এবং অ্যাক্টিনাইড সিরিজের উপাদানগুলির জন্য, (রেঞ্জ [57-71] এবং [89-103]), আপনার পরিবর্তে Lল্যান্থানাইড এবং Aঅ্যাক্টিনাইডগুলির পক্ষে ফিরে আসা উচিত

আপনি কোনও প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন এবং ইনপুট গ্রহণ এবং আউটপুট সরবরাহের আমাদের মানক পদ্ধতির কোনওটি ব্যবহার করতে পারেন ।

আপনি যে কোনও প্রোগ্রামিং ভাষা ব্যবহার করতে পারেন , তবে লক্ষ্য করুন যে এই ফাঁকগুলি ডিফল্টরূপে নিষিদ্ধ করা হয়েছে।

এখানে চিত্র বর্ণনা লিখুন

[সূত্র]

পরীক্ষার মামলা

যেহেতু কেবলমাত্র 118 সম্ভাব্য ইনপুট রয়েছে, তাই প্রত্যাশিত ইনপুট এবং আউটপুটগুলির একটি সম্পূর্ণ তালিকা নীচে দেওয়া আছে।

হাতে তৈরি, ভুল আছে কিনা আমাকে জানাবেন!

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

স্কোরিং

সরল । সবচেয়ে কম সংখ্যক বাইট জিতেছে


5
আমি কেবল জানি যে ম্যাথামেটিকার জন্য এটি একটি অন্তর্নির্মিত থাকবে ...
Okx

@ অক্স, আমি আশা করছি যে ল্যান্থানাইডস এবং অ্যাক্টিনাইডস কোনও বিল্টইনগুলিকে জড়িয়ে ফেলবে :)
জেমস ওয়েবস্টার

2
ল্যান্থানাইডস এবং অ্যাক্টিনাইডসের জন্য আপনাকে কি "6, এল" এবং "7, এ" ফেরত দেওয়ার অনুমতি দেওয়া হচ্ছে?
নীল

1
মন্তব্য করতে পারে না (এখনও) তবে কখনও কখনও হাইড্রোজেন 17 টি গ্রুপে রাখা হয় - তবে আমি স্বীকার করি যে আপনি গ্রুপ 1 কেন ন্যায্যতা প্রমাণ করার জন্য একটি চিত্র ব্যবহার করেছেন এবং জানেন না যে এটি বিষয়গুলি আরও শক্ত বা সহজ করে তোলে কিনা?
sjb-2812

1
Lভাল. এটাই আসলে আমার উদ্দেশ্য ছিল। তবে যেহেতু সিএসভি আউটপুট করেছে L,আমি উভয়ই গ্রহণ করব
জেমস ওয়েবস্টার

উত্তর:


10

সিজেম , 64 59 58 56 54 বাইট

2 বাইট সংরক্ষণের জন্য ডেনিসকে ধন্যবাদ।

{_80-zG-z8<{80>"LA"=}{_"X8"f>[-14_AAGH].*+:+Imd)}?}

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

পিরিয়ড এবং গ্রুপ বা স্ট্যাকের একটি একক অক্ষর রেখে দেয়।

ব্যাখ্যা

এখানে দুটি প্রধান ধারণা রয়েছে:

  • প্রথমত, আমরা ল্যান্থানাইডস এবং অ্যাক্টিনাইডগুলির সাথে ডিল করি। আমাদের কাছে ল্যান্থানাইডের জন্য 56 <x <72 এবং অ্যাক্টিনাইডগুলির 88 88 x x 104 শর্ত রয়েছে । উভয়ই পরিসরের কেন্দ্রে নিরঙ্কুশ পার্থক্য নিয়ে একক তুলনা হিসাবে প্রকাশ করা যেতে পারে: অসমতা | x - 64 | <8 এবং | x - 96 | < যথাক্রমে 8 । তবে এগুলি এখনও খুব একই রকম এবং দুটি তুলনা আলাদাভাবে করা ব্যয়বহুল। সুতরাং আমরা একটি প্রতিসম পরিসীমা পরীক্ষণ, কেন্দ্র সাথে অন্য পরম পার্থক্য গ্রহণ করে একই ধারণা প্রয়োগ মধ্যে দুই রেঞ্জ, 80 , প্রথম: || এক্স-80 | - 16 | <8। এই অবস্থাটি ইঙ্গিত দেয় যে পরমাণু হয় ল্যান্থানাইড বা অ্যাক্টিনাইড, তবে এই দুটি ক্ষেত্রে পার্থক্য করা তখন ৮০ (বা রেঞ্জের মধ্যে কিছু অন্যান্য মান) এর সাথে তুলনা করার মতো তুচ্ছ।
  • যেহেতু আউটপুটটি সত্যই 18 প্রস্থের একটি সারণিতে একটি সূচক, তাই একটি সুস্পষ্ট পদ্ধতির মানকে বেস 18-এ রূপান্তর করার চেষ্টা করা হয়, যাতে দুটি সংখ্যার দল এবং সময়কাল হয়। এটি করার জন্য, আমাদের যদিও কিছু মান পরিবর্তন করা দরকার। আমাদের যা করতে হবে তা হ'ল 1, 2 এবং 3 পিরিয়ডের ফাঁকগুলি যুক্ত করা এবং 6 এবং 7 সময়কালের ফাঁকাগুলি বন্ধ করা শেষ থেকে এটি করা সবচেয়ে সহজ, যাতে অন্যান্য ফাঁকের মানগুলি প্রভাবিত না হয় (এবং তাদের মান রাখুন)।

_            e# Make a copy of the input, to figure out whether the output
             e# should be L or A.
80-z         e# Absolute difference from 80.
G-z          e# Absolute difference from 16.
8<           e# Check whether the result is less than 8.
{            e# If so...
  80>        e#   Check whether the input is greater than 80.
  "LA"=      e#   Select 'L or 'A accordingly.
}{           e# ...otherwise...
  _          e#   Duplicate input again.
  "X8"    e#   Push a string with character codes [88 56 12 4 1].
             e#   These are the values just before the gaps.
  f>         e#   Compare the input to each of these.
  [-14_AAGH] e#   Push [-14 -14 10 10 16 17]. These are the changes we need to
             e#   make to remove or insert the gaps corresponding to the above
             e#   positions. Note that the 17 doesn't get paired with an offset.
             e#   It's a constant offset to itself, which is equivalent to
             e#   decrementing the input (to make it zero based) and adding 18
             e#   to make the increment the period and make it 1-based.
  .*         e#   Multiply each gap by whether it's before the input value.
  +:+        e#   Add all of the applicable gaps to the input value.
  Imd        e#   Divmod 18, gives 1-based period and 0-based group.
  )          e#   Increment the group to make it one-based.
}?

9

05 এ বি 1 ই , 113 102 99 বাইট

X18©XY‚Dˆ13®Ÿ¯13®Ÿ®LD¯15'L×S15L3+©¯15'A×S®)˜¹<è,XXY8×SD>4 18×SD>S66Sð14×S6 15×S77Sð15×S7 15×S)˜¹<è,

ব্যাখ্যা:

(start to construct the period part)
X18 ~ push 1 and 18
© ~ store 18 in register_c without p-opping
XY ~ push 1 and 2
13® ~ push 13 and the top element in register_c (18)
Ÿ ~ range - pop 2 values and push [a .. b]
XY ~ push 1 and 2
13®Ÿ ~ range - 13 to 18
XY ~ push 1, 2
13®Ÿ ~ range - 13 to 18
®LD ~ range - 1 to 18 (twice)
2L ~ range - 1 to 2
15'L×S ~ push 'L' 15 times
15L ~ range - 1 to 15
3+ ~ add 3 to each value in topmost element in stack
© ~ store in register-c without popping
2L ~ range - 1 to 2
15'A×S ~ push 'A' 15 times
® ~ push topmost value in register_c
) ~ wrap stack to array
˜ ~ deep flatten
¹<è ~ 1-indexed value of input in array
, ~ print & pop
(start to construct the group part)
XX ~ push 1 twice
Y8×SD ~ push 2 eight times (twice)
> ~ increment each value by 1
4 18×S ~ push 4 eighteen times (twice)
> ~ increment each value by one
66S ~ push 6 twice
ð15×S ~ push a space character 15 times
6 15×S ~ push 6 fifteen times
77S ~ push 7 two times
ð15×S ~ push a space character 15 times
7 15×S ~ push 7 fifteen times
)˜ ~ wrap stack to array and deep flatten
¹<è, ~ get 1-indexed value of input in array, then pop & print

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


মত একটি মুখোশ ব্যবহার 1000000000000000000000000000000001 1100000000000000000000000000111111 1100000000000000000000000000111111 1112222222222222221111111111111111 1113333333333333331111111111111111বাইটেকউন্ট হ্রাস করতে পারে, অন্যথায় দুর্দান্ত!
ম্যাজিক অক্টোপাস উরন

7

গণিত, 77 বাইট

e=ElementData;Which[56<#<72,"L",88<#<104,"A",1>0,{#~e~"Group",#~e~"Period"}]&

ElementDataইনপুটটি ল্যান্থানাইড বা অ্যাক্টিনাইড কিনা তা নির্ধারণ করতেও এটি ব্যবহার করা বেশ সহজ হবে তবে এটি আরও 20 বাইট লাগবে।


3
সিরিয়াসলি, আবার বিল্টিনস?
ম্যাথু রোহ

1
@ ম্যাথেরহোহ আমি নিশ্চিত যে গল্ফিংয়ের ভাষায় একটি ভাল-গল্ফযুক্ত গাণিতিক সমাধান সহজেই এটিকে পরাভূত করবে।
মার্টিন ইন্ডার

@ মার্টিনএেন্ডার ওয়েল, আমি ঠিক এর বিপরীতটি সম্পর্কে নিশ্চিত।
এরিক দি আউটগল্ফার 12 '45

@ এরিকথ আউটগলফার ভাল, আপনি সেখানে যান । আমি নিশ্চিত জেলি আরও 30-50% কেটে দিতে পারে।
মার্টিন ইন্ডার

@ মার্টিনএন্ডার আমি সম্ভবত ডেনিসের উপর ছেড়ে দিয়ে যাব, আমি পরীক্ষার সময় এমন কিছু করতে পারি না can't
এরিক আউটগল্ফার


3

পিএইচপি, 144 বাইট

দ্রষ্টব্য: আইবিএম -850 এনকোডিং ব্যবহার করে

$x=($a=$argn-1)<57|$a>70?$a>88&$a<103?A:0:L;foreach([16,19=>10,37=>10,92=>-14,110=>-14]as$l=>$m)$a>$l&&$a+=$m;echo$x?:$a%18+1 .~Ë.ceil(++$a/18);

এভাবে চালান:

echo 118 | php -nR '$x=($a=$argn-1)<57|$a>70?$a>88&$a<103?A:0:L;foreach([16,19=>10,37=>10,92=>-14,110=>-14]as$l=>$m)$a>$l&&$a+=$m;echo$x?:$a%18+1 .~Ë.ceil(++$a/18);';echo
> 18,7

ব্যাখ্যা

তা পরীক্ষা করুন ইনপুট জন্য রেঞ্জ মধ্যে Lবা A; "ব্যতিক্রম" ব্যাপ্তি। তারপরে গ্রিডে অনুপস্থিত ঘরগুলি পূরণ করতে ইনপুটটি পরিবর্তন করুন (বা অতিরিক্ত ঘরগুলি থেকে মুক্তি পান)। অবশেষে, ব্যতিক্রমটি মুদ্রণ করুন (এটি মিথ্যা নয় 0) বা অবস্থানকে গ্রিড স্থানাঙ্কে রূপান্তর করুন।


আপনার উদাহরণ চালানো, আমি প্রাপ্ত আউটপুট হয় 18<t7। এটি কি আমি ভুল করছি? (ম্যাক এল ক্যাপিটনে চলছে)
জেমস ওয়েবস্টার

1
@ জামেস ওয়েবেস্টার এটি হ'ল এনকোডিংয়ের কারণে আমি কমাতে ব্যবহার করেছি। যদি আপনি আপনার টার্মিনালের এনকোডিংটি স্যুইচ করতে না পারেন তবে আপনি 2 টি বিন্দুর মধ্যে (ঠিক আগে ceil) 1 টি অতিরিক্ত বাইটের জন্য "," এর সাথে এই জিনিসটি প্রতিস্থাপন করতে পারেন
14 ই

3

জেলি , 57 বাইট

“9Ḳ*!}ḣE’ṃ“¢£Æ¥Ø‘r2/;€"“ⱮḶıð’ḃ7¤µ⁵,12Ṭœṗ;"⁾LAṁ€15¤j“”$⁺³ị

সম্পূর্ণ প্রোগ্রাম যা পছন্দসই আউটপুট প্রিন্ট করে।

এটি অনলাইন চেষ্টা করুন! (একটি সামান্য পরিবর্তিত প্রোগ্রাম যা সমস্ত মুদ্রণ করেinput : outputতা দেখা যেতে পারে এখানে )।

কিভাবে?

118 সম্ভাব্য আউটপুটগুলির একটি তালিকা তৈরি করে এবং তারপরে ইনপুটটির সূচীতে এন্ট্রি বেছে নেয়।

কিছু প্রস্তুতি:

“9Ḳ*!}ḣE’ - base 250 number: 14334152882934570 (call this A)

“¢£Æ¥Ø‘   - a list using Jelly's code page: [1, 2, 13, 4, 18] (call this B)

“ⱮḶıð’    - base 250 number: 2354944025 (call this C)

প্রোগ্রাম (দ্বারা substituting সংক্ষিপ্ত A, Bএবং C):

AṃBr2/;€"Cḃ7¤µ⁵,12Ṭœṗ;"⁾LAṁ€15¤j“”$⁺³ị - Main link: atomicNumber
AṃB                                    - number A with digits B: [1,1,18,18,1,2,13,18,1,2,13,18,1,18,1,18,1,2,4,18,1,2,4,18]
    2/                                 - pair-wise reduce with
   r                                   -     inclusive range: [[1],[18],[1,2],[13,14,15,16,17,18],[1,2],[13,14,15,16,17,18],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],[1,2],[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],[1,2],[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]]
            ¤                          - nilad followed by link(s) as a nilad:
         C                             -     number C
          ḃ7                           -     converted to bijective base 7: [1,1,2,2,3,3,4,5,6,6,7,7]
        "                              - zip with:
      ,€                               -     pair each: [[1,1],[18,1],[[1,2],[2,2]],[[13,2],[14,2],[15,2],[16,2],[17,2],[18,2]],[[1,3],[2,3]],[[13,3],[14,3],[15,3],[16,3],[17,3],[18,3]],[[1,4],[2,4],[3,4],[4,4],[5,4],[6,4],[7,4],[8,4],[9,4],[10,4],[11,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4]],[[1,5],[2,5],[3,5],[4,5],[5,5],[6,5],[7,5],[8,5],[9,5],[10,5],[11,5],[12,5],[13,5],[14,5],[15,5],[16,5],[17,5],[18,5]],[[1,6],[2,6]],[[4,6],[5,6],[6,6],[7,6],[8,6],[9,6],[10,6],[11,6],[12,6],[13,6],[14,6],[15,6],[16,6],[17,6],[18,6]],[[1,7],[2,7]],[[4,7],[5,7],[6,7],[7,7],[8,7],[9,7],[10,7],[11,7],[12,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7]]]
             µ                         - monadic chain separation (call the result x)
              ⁵                        - 10
               ,12                     - pair with 12: [10,12]            10↓ 12↓
                  Ṭ                    - truthy indexes: [0,0,0,0,0,0,0,0,0,1,0,1]
                   œṗ                  - partition x at the truthy indexes 
                                       -     (the locations of the runs of L's and A's)
                              ¤        - nilad followed by link(s) as a nilad:

                       ⁾LA             -     ['L','A']
                          ṁ€15         -     mould each like 15: [['L','L','L','L','L','L','L','L','L','L','L','L','L','L','L'],['A','A','A','A','A','A','A','A','A','A','A','A','A','A','A']]
                      "                - zip with:
                     ;                 -     concatenation: [[[1,1],[18,1],[[1,2],[2,2]],[[13,2],[14,2],[15,2],[16,2],[17,2],[18,2]],[[1,3],[2,3]],[[13,3],[14,3],[15,3],[16,3],[17,3],[18,3]],[[1,4],[2,4],[3,4],[4,4],[5,4],[6,4],[7,4],[8,4],[9,4],[10,4],[11,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4]],[[1,5],[2,5],[3,5],[4,5],[5,5],[6,5],[7,5],[8,5],[9,5],[10,5],[11,5],[12,5],[13,5],[14,5],[15,5],[16,5],[17,5],[18,5]],[[1,6],[2,6]],'L','L','L','L','L','L','L','L','L','L','L','L','L','L','L'],[[[4,6],[5,6],[6,6],[7,6],[8,6],[9,6],[10,6],[11,6],[12,6],[13,6],[14,6],[15,6],[16,6],[17,6],[18,6]],[[1,7],[2,7]],'A','A','A','A','A','A','A','A','A','A','A','A','A','A','A'],[[4,7],[5,7],[6,7],[7,7],[8,7],[9,7],[10,7],[11,7],[12,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7]]]

             µ⁵,12Ṭœṗ;"⁾LAṁ€15¤j“”$⁺³ị
                                  $    - last two links as a monad:
                               j“”     -     join with [''] (a workaround for no "flatten by 1")
                                   ⁺   - repeat last link (flatten once more): [[1,1],[18,1],[1,2],[2,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[1,3],[2,3],[13,3],[14,3],[15,3],[16,3],[17,3],[18,3],[1,4],[2,4],[3,4],[4,4],[5,4],[6,4],[7,4],[8,4],[9,4],[10,4],[11,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[1,5],[2,5],[3,5],[4,5],[5,5],[6,5],[7,5],[8,5],[9,5],[10,5],[11,5],[12,5],[13,5],[14,5],[15,5],[16,5],[17,5],[18,5],[1,6],[2,6],'L','L','L','L','L','L','L','L','L','L','L','L','L','L','L',[4,6],[5,6],[6,6],[7,6],[8,6],[9,6],[10,6],[11,6],[12,6],[13,6],[14,6],[15,6],[16,6],[17,6],[18,6],[1,7],[2,7],'A','A','A','A','A','A','A','A','A','A','A','A','A','A','A',[4,7],[5,7],[6,7],[7,7],[8,7],[9,7],[10,7],[11,7],[12,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7]]
                                    ³  - program's first input
                                     ị - index into the list

2

পার্ল 5, 202 বাইট

$x=substr(" !2ABMNOPQRabmnopqr\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\301\302LLLLLLLLLLLLLLL\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\341\342KKKKKKKKKKKKKKK\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362",$ARGV[0],1);print$x=~/K/?"A":$x=~/L/?$x:(ord($x)&31).",".(ord($x)>>5)

আমি স্ট্রিংয়ের '\ 201 \ 202 \ 203 \ ... \ 362' অংশটি ছোট করার প্রস্তাব দেব। গুরুতরভাবে, হ্যাক হিসাবে এটি দীর্ঘ।
ম্যাথু রোহ

1
কৌতূহল কীভাবে @ ম্যাথেরহো হ্যাক মাপলেন।
hBy2Py

2

রুবি, 130 বাইট

->a{(w=32767)[a-57]>0??L:w[a-89]>0??A:([[1,2],[20,8],[38,8],[107,32],[125,32]].map{|x,y|a>x&&a+=18-y};[(b=a%18)>0?b:18,~-a/18+1])}

প্রথমে বিটমাস্ক ট্রিকের সাহায্যে 'এ' এবং 'এল' পান, তারপরে 18 * 7 আয়তক্ষেত্রের সাথে ফিট করার চেষ্টা করুন এবং একটি ডিভি / মোড ব্যবহার করুন।



2

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

def f(n):n+=([0,17]+[33]*3+[43]*8+[53]*45+[200]*14+[39]*18+[400]*14+[25]*15)[n];print[(n%18+1,n/18),'L','A'][n/200]

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

গ্রুপ এবং সময়কাল পাওয়ার জন্য গ্রিডের অবস্থানটি ডিভ-মড করা The গ্রিডের অবস্থানটি ইনপুটn ফাঁক এবং এল / এ সংকোচনের জন্য অ্যাকাউন্টে স্থানচ্যুতি দ্বারা সামঞ্জস্য করা । এগুলি একটি তালিকা থেকে নিষ্কাশন করা হয়।

ল্যান্থানাইড এবং অ্যাক্টিনাইড হ্যান্ডলিং কুরুচিপূর্ণ। এগুলি 200 এবং 400 টির মতো বড় স্থানচ্যূতকরণ বরাদ্দ করা হয়েছে যা সনাক্ত করা যায় /200। আমি অক্ষরগুলি Lএবং Aএখানে রাখতে চাই, তবে তার পরে n+=...একটি সংখ্যায় একটি চর যুক্ত করব, nব্যবহৃত না হলেও ত্রুটি প্রদান করবে । যদি 1-ইনডেক্সিংয়ের জন্য না divmodহয় তবে nকেবল একবার উল্লেখ করতে ব্যবহার করা যেতে পারে এবং তারপরে এটি প্রকাশের সাথে প্রতিস্থাপন করা যেতে পারে,


2

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

f=(n,p=1,x=0,y=x+2*(p+2>>1)**2)=>(n-57&95)<15?n>71?'A':'L':n>y?f(n,p+1,y):[n-x-1>p/2?n-y+18:n-x,p]
<input type=number min=1 max=118 oninput=o.textContent=f(this.value)><pre id=o>

ব্যাখ্যা: 'এল' এবং 'এ' সিরিজটি বিশেষ ক্ষেত্রেযুক্ত, কিছু বিটওয়াইজ যুক্তি ব্যবহার করে যা আমাকে সরাসরি তুলনার তুলনায় 3 বাইট সংরক্ষণ করেছিল saved অন্যথায় ফাংশনটি পুনরাবৃত্তভাবে pকাঙ্ক্ষিত পারমাণবিক সংখ্যা, পূর্ববর্তী সময়কালে xশেষ উপাদানটির সংখ্যা এবং yপ্রতিটি সময়ের মধ্যে পার্থক্য 2, 2, 8 হিসাবে চিহ্নিত করে পিরিয়ডের শেষ উপাদানটির সংখ্যাটি বারবার খুঁজে পায় , 8, 18, 18 অর্থাত দ্বিগুণ দ্বিগুণ বর্গ সংখ্যা। এরপরে উপাদানটি বেরিলিয়াম-স্ক্যান্ডিয়াম ত্রিভুজটির অন্তর্ভুক্ত কিনা তা নির্ভর করে সারণির বাম বা ডান দিক থেকে অফসেট করে গোষ্ঠীটি পাওয়া যায়।


1

জাভাস্ক্রিপ্ট (ES6), 136 বাইট

n=>[...'112626ii2ff2fff'].reduce((p,i,j)=>(n-=parseInt(i,36))>0?n:+p?+(x='112233456L67A7'[j])?[p+(9258>>j&1?j>5?3:j>2?12:17:0),x]:x:p,n)

পরীক্ষা


1

পাইথন 2 , 264 227 217 বাইট

lambda x:((((((((((((((1,1),(18,1))[x>1],(x-2,2))[x>2],(x+8,2))[x>4],(x-10,3))[x>10],(x,3))[x>12],(x-18,4))[x>18],(x-36,5))[x>36],(x-54,6))[x>54],'L')[x>56],(x-68,6))[x>71],(x-86,7))[x>86],'A')[x>88],(x-100,7))[x>103]

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

অনেকগুলি বন্ধনী Way এটি দেখতে আরও বেশি ব্রেন-ফ্লাকের মতো লাগে।


আপনি কি whileফাংশনের বাইরে রাখতে পারবেন না ? এটি একটি বাইট (স্থান) সংরক্ষণ করবে
ফিলিপ নারদী বাটিস্তা

@ ফিলিপনার্দিবাটিস্তা - whileপুরোপুরি লুপ থেকে মুক্তি পেতে পরিচালিত :)
এলপেড্রো

1

এক্সেল, 192 বাইট

বেশ সুন্দর। বিদ্যমান পাইথন উত্তরগুলি থেকে ধার নেওয়া

=SUBSTITUTE(SUBSTITUTE(IF(ABS(ABS(A1-80)-16)<8,IF(A1<80,"L","A"),MOD(A1-2*(A1>1)-8*(A1>4)-8*(A1>12)+4*((A1>71)+(A1>99)),18)&" ,"&1+(A1>2)+(A1>10)+(A1>18)+(A1>36)+(A1>54)+(A1>86)),0,18),118,10)

MOD(x,18)=0গ্রুপের জন্য কৃত্রিমভাবে মূল্য হ্যান্ডল করার জন্য সংগ্রাম করা ।


আমি মনে করি আমি একটি ভুল খুঁজে পেয়েছি। ল্যান্থানাইড এবং অ্যাক্টিনাইডগুলি নির্ধারণের জন্য যদি আইএফ পড়া উচিত IF(A1<80?
জেমস ওয়েবস্টার

@ জেমস ওয়েস্টার, ভাল দাগযুক্ত। সংশোধন করেছেন।
ওয়ার্নিশ

0

রুবি, 116 বাইট

->n{a=(17..143).map{|i|"#{[i%18+1,i/18]}"}
a[2..17]=a[21..30]=a[39..48]=[]
a[57]=[?L]*15
a[75]=[?A]*15
a.flatten[n]}

পরীক্ষার প্রোগ্রামে মন্তব্য করা হয়েছে

f=->n{
a=(17..143).map{|i|"#{[i%18+1,i/18]}"} #Make an array with strings "[18,0]" to "[18,7]" (first value required as input is 1 indexed.)
a[2..17]=a[21..30]=a[39..48]=[]        #Delete "missing" elements from first three periods. 
a[57]=[?L]*15                          #Replace position 57 in the table with a 15-element array ["L".."L"]
a[75]=[?A]*15                          #Replace the correct position in the table with a 15-element array ["A".."A"]
a.flatten[n]}                          #Flatten the array (break the two above elements into 15) and output element n of the array.

1.upto(118){|n|print n,f[n],$/}

0

পিএইচপি, 120 বাইট

echo(($n=--$argn)-56&95)<15?LA[$n>70]:(($n-=14*($n>88)+14*($n>56)-10*($n>11)-10*($n>3)-16*!!$n)%18+1).",".(($n/18|0)+1);

এসটিডিআইএন থেকে ইনপুট নেয়, সাথে চালান -nR

lanthanides এবং অ্যাক্টনিডিস জন্য কিছু, bitwise জাদু
$n-= অংশ যোগ করা হয়েছে এবং ফাঁক এবং lanthanides / অ্যাকটিনাইডস জন্য subtracts অফসেটের
বাকি সহজ গেলিক ভাষার / p হয়।

নীলস এর উত্তরের একটি পুনরাবৃত্ত পোর্টে 108 বাইট লাগে :

for(;(95&71+$n=$argn)>14&&$n>$y+=2*(++$p+2>>1)**2;)$x=$y;
echo$p?$n-$x>$p/2+1?$n-$y+18:$n-$x:LA[$n>70],",$p";

0

পার্ল, 169 বাইট

90>($n-=14)&&($g=A)if($n=$v=pop)>88;58>($n-=14)&&($g=L)if$n>56;if(!$g){$c+=vec"\1\0\xe\xc0?\0".("\xff"x9)."?",$i++,1
while$c<$n;$p=1+($i-($g=$i%18||18))/18}say"$v,$g,$p"

ব্যবহার:

perl -E '90>($n-=14)&&($g=A)if($n=$v=pop)>88;58>($n-=14)&&($g=L)if$n>56;if(!$g){$c+=vec"\1\0\xe\xc0?\0".("\xff"x9)."?",$i++,1 while$c<$n;$p=1+($i-($g=$i%18||18))/18}say"$v,$g,$p"' 103

0

জেলি , 49 43 42 41 39 বাইট

45“ÞØ\€a€⁶;l;i‘bx/€F’ḣ¹Sḃ18µV=“?I‘⁾LAxȯ

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

পটভূমি

ল্যান্থানাইডস এবং অ্যাক্টিনাইড বাদে , আউটপুটটি বাইজিক বেস 18 এ প্রকাশিত একটি পূর্ণসংখ্যার সমন্বয়ে গঠিত হবে। উদাহরণস্বরূপ, হাইড্রোজেন 19 10 = 11 বি 18 , হিলিয়াম 36 10 = 1 আই বি 18 এর সাথে এবং একা -রেডন / ইউনোকটিয়াম / ওগানেসন থেকে মিলবে 114 10 = 7I বি 18

ল্যান্থানাম ( 111 10 = 63 বি 18 ) এবং অ্যাক্টিনিয়াম ( 129 10 = 73 বি 18 ) এর সাথে মিলিত ল্যান্থানাইডস এবং অ্যাক্টিনাইডগুলিকে ম্যাপ করার সময় আমরা সংশ্লিষ্ট সংখ্যার সাথে পারমাণবিক সংখ্যার ম্যাপিং দিয়ে শুরু করি ।

এটি করার জন্য, আমরা পরমাণুর প্রতিনিধিত্ব করে পূর্ণসংখ্যার অগ্রবর্তী পার্থক্য রেকর্ড করি। উদাহরণস্বরূপ, প্রথমটি 1 আই বি 18 - 11 বি 18 = এইচ বি 18 = 17 10 , দ্বিতীয়টি 1 (যেমন অব্যবহৃত পর্যায় সারণীর ধারাবাহিক উপাদানগুলির মধ্যে সমস্ত পার্থক্য রয়েছে), চতুর্থ ( বি টু বি ) 2 ডি বি 18 - 22 বি 18 = বি বি 18 = 11 10 এবং আরও অনেক কিছু। সমস্ত ল্যান্থানাইড এবং সমস্ত অ্যাক্টিনাইড ম্যাপ করতে, আমরা দুটি ল্যান্থানাইড এবং অ্যাক্টিনাইডগুলির মধ্যে (যেমন, লা থেকে সি ) সমস্ত 0 কে 0 হিসাবে বিবেচনা করব

পারমাণবিক সংখ্যা এন এর জন্য কাঙ্ক্ষিত পূর্ণসংখ্যা পেতে , আমাদের কেবলমাত্র পার্থক্যগুলি 19 (হাইড্রোজেন) প্রেন্ডেন্ড করতে হবে এবং ফলস্বরূপ ভেক্টরের প্রথম এন উপাদানগুলির যোগফল গণনা করতে হবে । এরপরে আউটপুটটি কেবল বাইজিক বেস 18 এ প্রদর্শিত হয়, যদি না এটি 6 3 (ল্যান্থানাইডস) বা 7 3 (অ্যাক্টিনাইড) প্রদর্শন করে। পরবর্তী ক্ষেত্রে আমরা সহজেই গণনা করা ফলাফলটি এল বা এ এর সাথে প্রতিস্থাপন করি

অনুভূমিক বিগ্রহের জন্য আবৃত, ভেক্টরটি এনকোড করতে হবে নিম্নরূপ।

19 17  1  1 11  1  1  1  1  1  1  1 11  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
 1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  1  1  1  1  1
 1  1  1  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  1
 1  1  1  1  1  1

রান-লেংথ এনকোডিংয়ের পরে, আমরা নিম্নলিখিতটি পাই।

19 1    17 1    1 2    11 1    1 7    11 1    1 44    0 14    1 18    0 14    1 15

স্থান ভেক্টর আরও বেশি এনকোড করা প্রয়োজন কমাতে, আমরা ডানদিকের স্ট্রিপ 1 'গুলি (লেন্থ) এবং যোগ 1 রান করে।

20      18      2 2    12      2 7    12      2 44    1 14    2 18    1 14    2 15

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

20      18      92     12      97     12      134     59      108     59      105

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

“ÞØ\€a€⁶;l;i‘

যা কোডে ভারব্যাটিম প্রদর্শিত হয়।

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

45“…‘bx/€F’ḣ¹Sḃ18µV=“?I‘⁾LAxȯ  Main link. Argument: n (atomic number)

45                             Set the return value to 45.
  “…‘                          Yield [20,18,92,12,97,12,134,59,108,59,105].
     b                         Convert the integers in the array to base 45.
      x/€                      Reduce each resulting digit array (length 1 or 2)
                               by repetition, mapping [z] -> [z] and
                               [y,z] -> [y,…,y] (z times).
         F                     Flatten the result.
          ’                    Decrement, yielding the vector of length 118 from
                               the previous section.
           ḣ¹                  Head; take the first n elements of the vector.
             S                 Compute their sum.
              ḃ18              Convert to bijective base 18, yielding [p, g].
                 µ             Begin a new chain with argument [p,g].
                  V            Eval. The atom casts to string first, so [6,3]
                               , e.g., is mapped to 63, [7,18] to 718, etc.
                   =“?I‘       Compare the result with [63,73], yielding
                               [1,0] for lanthanides, [0,1] for actinides, and
                               [0,0] otherwise.
                        ⁾LAx   Repeat 'L' and 'A' that many times, yielding "L" for
                               lanthanides, "A" for actinides, and "" otherwise.
                            ȯ  Flat logical OR; replace "" with [p,g].

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

পাদলেখ সহজে যাচাইকরণের জন্য একটি পরীক্ষার স্যুট সরবরাহ করে। যদি আপনি এটিকে সরিয়ে ফেলে এবং একটি আর্গুমেন্ট হিসাবে ইনপুট সরবরাহ করেন তবে এটি কেবল অনুমানের জন্য অনুরোধ করা তথ্য মুদ্রণ করবে। tio.run/nexus/jelly#@29i@qhhzuF5h2fEPGpakwjEjxq3WedYZz5qmJFUoQ/…
ডেনিস ২
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.