বিপরীত এবং বর্গাকার


19

এই চ্যালেঞ্জটিতে আপনি একটি উত্সাহী ক্রম থেকে সংখ্যাগুলি গণনা করবেন।

আপনার ইনপুটটি একক দশমিক ননজেটিভ পূর্ণসংখ্যা। এই পূর্ণসংখ্যার বিটগুলি বিপরীত করুন এবং তারপরে প্রয়োজনীয় আউটপুট পেতে সংখ্যাটি বর্গ করুন।

বিটগুলি বিপরীত করার সময় আপনাকে অবশ্যই ইনপুটটিতে কোনও শীর্ষস্থানীয় জিরো ব্যবহার করবেন না। উদাহরণ স্বরূপ:

26 (base 10) = 11010 (base 2) -> 01011 (base 2) = 11 -> 11*11 = 121

এই ক্রমের প্রথম 25 ইনপুট / আউটপুট:

0: 0
1: 1
2: 1
3: 9
4: 1
5: 25
6: 9
7: 49
8: 1
9: 81
10: 25
11: 169
12: 9
13: 121
14: 49
15: 225
16: 1
17: 289
18: 81
19: 625
20: 25
21: 441
22: 169
23: 841
24: 9

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


আপনার স্কোরটি সোর্স কোডের বাইটের সংখ্যা।

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

সবচেয়ে ছোট স্কোর জয়।



1
কোড যদি এমন কোনও পদ্ধতিতে কল করে যা বিটগুলিকে উপস্থাপন করে এমন অক্ষরের স্ট্রিংয়ের ফলস্বরূপ, এটি কি বোনাসের জন্য যোগ্য?
ব্র্যাড গিলবার্ট 19

2
@ ব্র্যাডগিলবার্টব 2 গিলস নং
অর্পল

আমি অনুমান করি যে বিটগুলি বের করতে গণিত ব্যবহার করাও বাইনারি রূপান্তর হিসাবে গণ্য হয়?
lirtosiast

উত্তর:


5

পার , 5 বাইট

✶Σ⌐Σ²

এটি-বাইনারি-বিপরীত-বাইনারি-স্কোয়ার।



@ সিও'বিʀɪᴇɴ যে বাইট কাউন্টারটি ইউটিএফ -8 ধরেছে। আমার বিশ্বাস মরিস তার বাইটগুলি গণনা করার জন্য এমন কিছু এনকোডিং ব্যবহার করছেন যা ইউটিএফ -8 নয়, তবে তিনি এই এনকোডিংটি নির্দিষ্ট করেননি।
orlp

পার এর নিজস্ব অদ্ভুত এনকোডিং ব্যবহার করে। এর আধ্যাত্মিক উপস্থাপনা <256 ইউনিকোড অক্ষরের একটি নির্দিষ্ট উপসেট। আমি এর কোন নাম আছে কিনা তা নিশ্চিত নই; আমার @Ypnypn এর চিম ইন করার অপেক্ষা করা উচিত
লিন

আচ্ছা বুঝলাম. @ অরলপ
কনোর ও'ব্রায়েন

সম্ভবত এটির নিজস্ব এসবিসিএস আছে?
হাইপারনিউটারিনো

19

ম্যাথামেটিকাল, 42 21 বাইট

স্কোর অর্ধেক করার জন্য আলেফালফাকে ধন্যবাদ।

#~IntegerReverse~2^2&

ম্যাথেমেটিকাতে আমি এটি করার আসল কারণটি ছিল কারণ আমি একটি চক্রান্ত দেখতে চেয়েছিলাম ... এটি অবশ্যই মজাদার দেখাচ্ছে:

enter image description here


11
তবে আমি স্কোর পছন্দ! এক্সডি
কনর ও'ব্রায়েন

1
এই উত্তরটিতে কম বাইটস সহ উত্তরের চেয়ে বেশি ভোট কেন? o_O
সিড্রাস

27
@ সিয়াদ্রস তারা জানেন কি আপনি জানেন। একটি ছবি 7 বাইট মূল্য।
মার্টিন এন্ডার

5
সুতরাং আপনার স্কোর 42 + 7 = 49 বাইট: পি
সিড্রাস

3
দুঃখিত, @ CᴏɴᴏʀO'Bʀɪᴇɴ।
মার্টিন ইন্ডার

8

মিনকোলাং 0.14 , 43 বাইট

এটি উদ্বুদ্ধ করার জন্য মেগোকে ধন্যবাদ।

n1{d1`,2$3*&$z2zd2%-2l$Md1%-;z2%*z2:{+}2;N.

কোডটি এখানে পরীক্ষা করুন এবং সমস্ত পরীক্ষার কেসগুলি এখানে পরীক্ষা করুন

ব্যাখ্যা

এটি এই পুনরাবৃত্তি সম্পর্কটি ব্যবহার করে:

a(0) = 0
a(1) = 1
a(2n) = a(n)
a(2n+1) = a(n) + 2^(floor(log_2(n))+1)

যদি nইনপুট হয়, তবে a(n)এর বাইনারি ক্রমটি উল্টানোর পরে ফলাফলটি হ'ল 0 এবং 1 সুস্পষ্ট। কারণ a(2n) = a(n), বিবেচনা করুন x0(যেখানে xবাইনারি অঙ্কগুলির কোনও ক্রম রয়েছে) উল্টানো হয়েছে 0x, যা একই x। কারণ a(2n+1), যুক্তি কিছুটা জটিল। x1ফ্লিপ হয় 1xযা সমান, x + 2^kকিছু জন্য k। এটি kহ'ল সংখ্যার চেয়ে আরও একটি x, যা floor(log_2(n))+1। সম্পূর্ণ সূত্রটি অনুসরণ করে, এটি কিছুটা সংশোধন করা ছাড়া। এটিই আমি আসলে কোড করি:

a(0) = 0
a(1) = 1
a(n) = a(n//2) + (n%2) * 2^(floor(log_2(n - n%2)))

মেগো এবং আমি যেমন আড্ডায় কাজ করেছি floor(n/2) = (n - n%2)/2,। এইভাবে log_2(floor(n/2))+1 = log_2(n - n%2),। তদ্ব্যতীত, গুণমান দ্বারা (n%2)বিজোড় এবং এমনকি উভয় অংশকেই একটি অভিব্যক্তিতে পরিণত হয়।

অবশেষে, আর কোনও অ্যাডো ছাড়াই এখানে কোডটি ব্যাখ্যা করা হয়েছে।

n                                              Take number from input
 1{                                            Start recursion that takes only one element
   d1`,                                        1 if top of stack 0 or 1, 0 otherwise
       2$3*                                    26
           &                                   Jump if top of stack is not zero
            $z                                 Store top of stack in register (z)

               zd2%-                           n - n%2
                    2l$M                       log_2(n - n%2)
                        d1%-                   floor(log_2(n - n%2))
              2             ;                  2^floor(log_2(n - n%2))
                             z2%               n%2
                                *              Multiply
                                 z2:           n//2
                                    {          Recurse
                                     +         Add
                                      }        Return
                                       2;N.    Square it, output as number, and stop.

1
আমি মনে করি পুনরুক্তিটি পৃথক বিটগুলির উপরে পুনরাবৃত্তি করার একটি সংশোধন মাত্র।
মার্টিন এন্ডার

3
আমি ভয় করি যে এটি গণনা করে না। আপনি যখনই দেখেন 2nএবং 2n+1পুনরাবৃত্তির সম্পর্কের ক্ষেত্রে আপনার তাত্ক্ষণিকভাবে এটিকে বিটের চেয়ে বেশি লুপিং হিসাবে মনে করা উচিত।
orlp

1
@ অরলপ: আচ্ছা, এটি খুব খারাপ। আমি এখন বিনীতভাবে বিশ্বাস করি যে আপনার বোনাসটি অসম্ভব।
এল'েন্ডিয়া স্টারম্যান

আমি মনে করি @ এল'এন্ডিয়া স্টারম্যান আমি প্রায় পেয়েছি।
কনর ও'ব্রায়েন

8

জাপট , 29 28 11 7 বাইট

(আপনি প্রোগ্রামটি একটি 7-বাইট আইসিসি_8859-1-এনকোডযুক্ত ফাইল হিসাবে সংরক্ষণ করতে পারেন, তারপরে এটি অনুবাদককে আপলোড করুন ))

জাপট দ্বারা তৈরি জাভাস্ক্রিপ্ট সংক্ষিপ্ত করা হয় ETHproductions

¢w n2 ²

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

ব্যাখ্যা:

  1. ¢শর্টকাট Us2যা সংকলিত হয় U.s(2)Uইনপুট (অন্তর্নিহিত),.s(2) একটি সংখ্যা দ্বারা আহ্বান করা হয়, আহ্বান করে .toString(2)(বাইনারি রূপান্তর করে, স্ট্রিং হিসাবে পার্স)।

  2. wসংকলন .w(), যা স্ট্রিং বিপরীত (.split('').reverse().join('') )।

  3. n2 হিসাবে কাজ করে parseInt(<number>,2) , বাইনারি দশমিক রূপান্তরিত ।

  4. ²আহ্বান Math.pow(<number>,2), অর্থাৎ সংখ্যাটি বর্গ।


1
সংখ্যাটিতে একটি স্ট্রিং ফাংশন রয়েছে n, যাতে আপনি এটি করতে পারেন Us2 a w a n2 p2। ভাল কাজ যদিও!
ETH প্রোডাকশনস

1
এছাড়াও, wঅ্যারেগুলিতে যেমন স্ট্রিংয়ের কাজ করে তেমনই কাজ করে, যাতে আপনার দু'জনের দরকার নেই a:)
ETH প্রোডাকশন

1
একটি শেষ জিনিস: Us2 = ¢, এবং p2= ², এটিকে 7 বাইটে নামিয়ে আনছে:¢w n2 ²
ETH প্রোডাকশন

3
অনলাইন অনুবাদক এখন IEC_8859-1 এনকোড ফাইল গ্রহণ করে। (যদিও ইউটিএফ -8 এবং ইউটিএফ -16 কীভাবে করবেন তা আমি নিশ্চিত নই ...)
ইটিএইচ প্রডাকশনগুলি

2
@ ইথ প্রডাকশনস - এখন আমি এটি +1 করতে পারি :)
ডিজিটাল ট্রমা

5

পাইথন, 32 বাইট

lambda x:int(bin(x)[:1:-1],2)**2

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

কোডটি বেশ সোজা: bin(6)উদাহরণস্বরূপ, 0b1106 এর বাইনারি উপস্থাপনা [:1:-1]স্ট্রিংটিকে বিপরীত করে এবং মুছে ফেলে 0bintস্ট্রিংটিকে বাইনারি থেকে পূর্ণসংখ্যায় রূপান্তর করে এবং **2এটি স্কোয়ার করে।


5

জल्फ , 7 বাইট

শুধু এটি চালান। পৃষ্ঠায় ইনপুট কাজ করে না।

^C_Bj22

ব্যাখ্যা

^C_Bj22
    j   numeric input
   B    convert to binary (str)
  _     reverse
 C   2  parse as binary integer to base 10
^     2 square
        implicit output

আমি Qকমান্ডটি যুক্ত করেছি, যা এটি 6 বাইট করে:QC_Bj2


4
ক্রসড 7 এখনও এখনও 7 -র মতো দেখাচ্ছে
একটি স্প্যাগেটো

2
@ কোয়ার্তাটা ক্রস আউট 4 এর মতো খারাপ নয় or
অরল্প

4

টিস্ক্রিপ্ট , 9 বাইট 11

চা স্ক্রিপ্ট গল্ফিংয়ের জন্য জাভাস্ক্রিপ্ট

®x÷v¤)**2

আমি আবার আমার কম্পিউটারে ফিরে এলে আরও গল্ফ করব

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

সব পরীক্ষা


দোভাষী কি ইউটিএফ 8 ব্যতীত অন্য কোনও এনকোডিংগুলি বুঝতে পারে? ইউটিএফ 8 এনকোডিং ব্যবহার করে, আমি মনে করি আপনার এন্ট্রি 12 বাইট দীর্ঘ
ডিজিটাল ট্রমা

4

গুরুতরভাবে , 8 7 বাইট

2;,¡R¿ª

এর মতো চ্যালেঞ্জগুলি সিরিয়াসলি জন্য উপযুক্ত: :)

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

ব্যাখ্যা:

2;,¡    get a string representing the (decimal) input in binary, with a 2 on the bottom of the stack
R      reverse the string
¿    convert binary string to decimal int (using that extra 2 from earlier)
ª      square it

ভালো কাজ মিলছে জল্ফ!
কনর ও'ব্রায়েন

আপনার দোভাষী সিপি 437 এনকোডিং গ্রহণের জন্য +1 করুন (অথবা এটির কমপক্ষে হেক্স উপস্থাপনা)
ডিজিটাল ট্রমা

4

জে, 10 9 বাইট

2^~|.&.#:

এটি একটি স্বতন্ত্র, একাকী ক্রিয়া এটি অনলাইন চেষ্টা করুন!

@ রেন্ডোমাকে ধন্যবাদ 1 বাইট বন্ধ করে দেওয়ার জন্য!

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

2^~|.&.#:  Right argument: y

       #:  Convert y to binary.
   |.      Reverse the digits.
     &.    Dual; apply the inverse of #:, i.e., convert back to integer.
 ^~        Apply power (^) with reversed argument order (~)...
2          to 2 and the previous result.

লিঙ্কটি কাজ করে না, আমি একটি গুগল পৃষ্ঠায় একটি 404 ত্রুটি পেয়েছি যা বলছে "অনুরোধ করা URL /host/0B3cbLoy-_9Dbb0NaSk9MRGE5UEU/index.html এই সার্ভারে পাওয়া যায় নি That's এটাই আমরা জানি" "
বিজন


2

জাভাস্ক্রিপ্ট, 64 63 56 53 বাইট

n=>parseInt([...n.toString(2)].reverse().join``,2)**2

আমি বুঝতে পারি যে আমি অতিরিক্ত দীর্ঘ, তবে ওহে, আমি এটি করতে পারি: পি

ডেমো


পরিবর্তে parseInt(আপনি এটি করতে পারেন+("0b"+
ডাউনগোট

@ ডাউনগোট এইচএম, এটি সঠিক ফলাফল দেবে বলে মনে হয় না।
নিকেল

[...n.toString(2)]এবং.join``
কনার ও'ব্রায়েন

1
এমনকি খাটো W / ES7 (49 বাইট): n=>+("0b"+[...n.toString(2)].reverse().join``)**2। কোনও ব্রাউজারে এখনও কাজ করে না
ডাউনগোট

1
@ সিও'বিʀɪᴇɴ ধন্যবাদ, এটি কিছু বাইট সংরক্ষণ করে।
নিকেল




1

পাইথ - 9 বাইট

সোজা রূপান্তর। আমি আসলে একটি ভারে 2 নিয়োগ করেছিলাম যা বেশ অদ্ভুত।

^i_jQK2KK

টেস্ট স্যুট


1

পাইথ, 9 বাইট

^i_.BQ2 2

এটি পাইথনের মতো একটি খুব সাধারণ পাইথ ভিত্তিক উত্তর


1

𝔼𝕊𝕄𝕚𝕟, 12 চর / 21 বাইট

⦅`ᶀ`+ᴙ(ïß2)²

Try it here (Firefox only).

অ-প্রতিযোগিতামূলক উত্তর, 9 টি অক্ষর / 18 বাইট

⦅Յ+ᴙ(ïⓑ)²

Try it here (Firefox only).


1
এই বাইট কাউন্টারের মাধ্যমে , 15 বাইট দেয় (অন্য একটি এনকোডিং ব্যবহার করে)।
নিকেল

আমি ইউটিএফ -8 ব্যবহার করে গ্রেড করি (যতক্ষণ না আমি মাইনকে কাজ করতে এনকোডিং না পাই)।
মামা ফান রোল

... ভাষাটির নাম ... বাক্সগুলি?
কর্সিকা

এটি ডাবলস্ট্রাকের ইএসমিন। ইউনিকোড অক্ষর সম্পূর্ণরূপে সমর্থিত নয়।
মামা ফান রোল


1

টিআই-বেসিক (টিআই -৪৮ প্লাস সিই), 42 বাইট

Prompt X
0→S
While X
2S→S
If X/2≠int(X/2
S+1→S
End
S2
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.