এটিকে আপনার দ্বিগুণ করুন


31

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

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

আপনার উত্স কোডটি দ্বিগুণ কীভাবে হয়? ভাল, আপনি এটি আপনার উপায় থাকতে পারে । এর অর্থ হল, আপনি আপনার উত্স কোডটি বাইট বা অক্ষরের স্ট্রিংগুলিতে বিভক্ত করতে পারেন (বা টোকেনযুক্ত ল্যাংগুলিতে টোকেন) কোনও সমান দৈর্ঘ্যের করতে পারেন এবং প্রতিটি খণ্ডকে পর পর দুবার পুনরাবৃত্তি করতে পারেন

এর প্রাথমিক প্রোগ্রামের জন্য ABCDEFGHIJKL, (দৈর্ঘ্য 12) এখানে সমস্ত সম্ভাব্য দ্বিগুণ প্রোগ্রাম রয়েছে:

Chunk length |   Doubled source code
-------------+-------------------------
           1 | AABBCCDDEEFFGGHHIIJJKKLL
           2 | ABABCDCDEFEFGHGHIJIJKLKL
           3 | ABCABCDEFDEFGHIGHIJKLJKL
           4 | ABCDABCDEFGHEFGHIJKLIJKL
           6 | ABCDEFABCDEFGHIJKLGHIJKL
          12 | ABCDEFGHIJKLABCDEFGHIJKL

নোট করুন যে এর অর্থ প্রধান দৈর্ঘ্যের প্রোগ্রামগুলি কেবল দুটি উপায়ে দ্বিগুণ করা যেতে পারে: প্রতিটি অক্ষর দ্বিগুণ হয়, বা পুরো প্রোগ্রামটি দু'বার পুনরাবৃত্তি হয়।

নিয়মাবলী:

  • কোড একটি পূর্ণ প্রোগ্রাম বা ফাংশন হতে হবে।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • স্ট্যান্ডার্ড I / O পদ্ধতি অনুমোদিত।
  • হোয়াইটস্পেস এবং নিউলাইনগুলি সহ সমস্ত অক্ষর / বাইট কোডের দৈর্ঘ্যে গণনা করা হয় এবং খণ্ডগুলিতে অবদান রাখে।
  • আপনি পারে অনুমান যে ইনপুট এবং তার বর্গ আপনার ভাষা এর int- এ / পূর্ণসংখ্যা টাইপ দ্বারা প্রতিনিধিত্ব করা যেতে পারে।
  • আপনি অনুবর্তনযোগ্য নতুনলাইন বা অন্যান্য চরিত্রটি ধরে নাও নিতে পারেন।
  • বাইট গণনার পরে শিরোনামে আপনার অংশের আকার দিন।
  • এটি , তাই সংক্ষিপ্ত প্রোগ্রামগুলি আরও ভাল! যদি দুটি প্রোগ্রাম একই দৈর্ঘ্যের হয় তবে একটি যা ছোট অংশের দৈর্ঘ্য ব্যবহার করে তা জয়ী হয়। (আপনার যদি আরও দীর্ঘ প্রোগ্রাম থাকে যা একটি ছোট অংশের দৈর্ঘ্য ব্যবহার করে তবে এটি পোস্ট করার পক্ষেও উপযুক্ত!)
  • আপনার প্রোগ্রামটির যদি দ্বিতীয় ইনপুট / লাইন প্রয়োজন হয় তবে আপনি এর মান সম্পর্কে কোনও অনুমান করতে পারেন না। বিশেষত, যদি দ্বিতীয় ইনপুট খালি থাকে তবে প্রথম হিসাবে একই, বা কোনও পৃথক পূর্ণসংখ্যা যদি আপনার প্রোগ্রামে কাজ করা উচিত। যদি আপনার প্রোগ্রামটির জন্য দ্বিতীয় ইনপুট / লাইনটির প্রয়োজন না হয় তবে আপনি এই বিধিনিষেধ উপেক্ষা করতে পারেন।

স্যান্ডবক্স লিঙ্ক


আমি কি ভাসমান হিসাবে ফলাফল আউটপুট করতে পারি ( .0শেষে দিয়ে)?
বলেছেন মনিকা পুনরায় স্থাপন করুন

কোড দ্বিগুণ হওয়ার পরে আমরা কি বর্গাকার দুটি মুদ্রণ করতে পারি? একক কোড 5 -> 10:; ডবল কোড: 5 -> 25 25
রবিন রাইডার

@ রবিনরাইডার না, আপনি নাও পারেন।
গামা ফাংশন

@ ভ্যালু হিসাবে আপনি আউটপুট দিতে পারেন।
গামা ফাংশন

উত্তর:


18

পার্ল 5 , 8 বাইট (খণ্ড আকার 4)

$_*=~~+2

এটি অনলাইনে চেষ্টা করুন , বা দ্বিগুণ সংস্করণ ব্যবহার করে দেখুন

ইউনারী ~,, bitwise অস্বীকার তাই দুইবার এটা প্রয়োগের একটি noop হয়। সুতরাং, বেস প্রোগ্রামটি কেবল $_2 দ্বারা গুণিত (অন্তর্ভুক্ত ইনপুট-আউটপুট ভেরিয়েবল) করে)

বাইনারি ~~হ'ল স্মার্টমেচ, যা একটি বুলিয়ান দেয়। ~~+2~~+2পার্স হিসাবে (~~+2) ~~ (+2)। যেহেতু 2 সমান 2 হয়, এটি সত্য (1) দেয়। সুতরাং, দ্বিগুণ প্রোগ্রামটি প্রথমে $_1 দ্বারা গুণিত হয়, তারপরে $_নিজেই গুন করে।


17

05 এ বি 1 ই , 4 বাইট (মাপের আকার 2 বা 4)

·Inr

এটি অনলাইনে চেষ্টা করুন বা একক 4-বাইট অংশ হিসাবে দ্বিগুণ করুন বা দুটি 2-বাইট অংশ হিসাবে দ্বিগুণ করুন

·        # double the implicit input
 In      # square the input
   r     # reverse the stack: it's now [input ** 2, input * 2]
         # if we stop here: implicitly output the top of the stack (input * 2)
·        # double the top of the stack (giving input * 4, not that it matters)
 In      # square the input
   r     # reverse the stack: it's now [input ** 2, input * 4, input ** 2]
         # implicitly the top of the stack (input ** 2)

15

পাইথন 3 , 26 বাইট (আকার 13)

lambda n:"and n*n#"and 2*n

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

দ্বিগুণ:

lambda n:"andlambda d:"and n*n#"and 2*n n*n#"and 2*n

এই সমাধানটি @ গ্রিমি সরবরাহ করেছেন।


পাইথন 3 , 32 30 28 বাইট (খণ্ড আকার 16 15 14)

lambda n:bool(0)*n*n or  2*n

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

-4 বাইটস @ নেগেটিভসীভনকে ধন্যবাদ

দ্বিগুণ:

lambda n:bool(lambda n:bool(0)*n*n or  2*n0)*n*n or  2*n

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

ফাংশনটি এই চ্যালেঞ্জের অনন্য অংশের নিয়মটি গ্রহণ করে।



1
@ গ্রিমি নিস অ্যাপ্রোচ আমি মনে করি এটি যথেষ্ট আলাদা এবং এটি নিজের পোস্টের জন্য প্রাপ্য।
জোয়েল

1
@ গ্রিমি আমি আপনার সমাধানটি আমার পোস্টে যুক্ত করেছি যেহেতু আপনি আলাদা পোস্ট তৈরি করতে আগ্রহী বলে মনে করছেন না।
জোয়েল

9

বেফুঞ্জ -98 (এফবিবিআই) , 8 বাইট (দৈর্ঘ্য 2)

;&:#* +q

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

;&;&:#:#* * +q+q

এটি অনলাইন চেষ্টা করুন! (দ্বিগুণ)

নিয়ন্ত্রণ প্রবাহ ব্যতীত, প্রথম প্রোগ্রামটি কার্যকর করে &:+q(ইনপুট, স্ট্যাকের সদৃশ শীর্ষ, যোগ, রিটার্ন কোড সহ প্রস্থান), এবং দ্বিতীয় সম্পাদন &:*+q(ইনপুট, স্ট্যাকের সদৃশ শীর্ষ, গুণ), যোগ (একটি অন্তর্নির্মিত 0 দিয়ে যোগফল), রিটার্ন সহ প্রস্থান কোড)


9

হেক্সাগনি , 14 বাইট (মাপের আকার 14)

?"+==*/}=+!@!<

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

  ? " +
 = = * /
} = + ! @
 ! < . .
  . . .

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

দ্বিগুণ

?"+==*/}=+!@!<?"+==*/}=+!@!<

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

   ? " + =
  = * / } =
 + ! @ ! < ?
" + = = * / }
 = + ! @ ! <
  . . . . .
   . . . .

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

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

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

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


2
@ জোকিং ভাল হয়েছে! এটি আমার উত্তর থেকে আলাদা, সুতরাং আপনি কি এটি পোস্ট করতে চান (অব্যবহৃত স্থান পূরণ করতে বিভিন্ন অংশের আকার ব্যবহার করা কি সত্যিই ঝরঝরে!)? অন্যথায় আমি এটি যুক্ত করব এবং আমার আরও সময় লাগলে একটি ব্যাখ্যা যুক্ত করব।
FryAmTheEggman

9

হেক্সাগনি , 12 বাইট (খণ্ড আকার 4)

?"2+...}=*!@

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

বিন্যাসকৃত:

  ? " 2
 + . . .
} = * ! @
 . . . .
  . . .

এবং দ্বিগুণ , তারপরে ফর্ম্যাট করা:

   ? " 2 +
  ? " 2 + .
 . . } . . .
} = * ! @ = *
 ! @ . . . .
  . . . . .
   . . . .

মূলত, এটি প্রথম প্রান্তটি ইনপুটটিতে সেট করে, তারপরে দ্বিতীয় প্রান্তটি হয় উভয়কেই 2বা ইনপুটটির অনুলিপি করে, তারপর সেই দুটি প্রান্তকে তৃতীয় প্রান্তে গুণিত করে, প্রিন্ট করে এবং সমাপ্ত হয় ates মৃত্যুদন্ড কার্যকর নির্দেশাবলীর তালিকা ঠিক

?"2}=*!@

এবং

?"2+}=*!@

দ্বিতীয় প্রোগ্রামটিতে +ওভাররাইডিংয়ের সাথে একমাত্র পার্থক্য 2


8

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

এর অস্বাভাবিক বিন্যাস থাকা সত্ত্বেও এটি একটি বেনাম ফাংশনের সংজ্ঞা, যা হয় সরাসরি ডাকে বা কোনও ভেরিয়েবলের জন্য নির্ধারিত হতে পারে।

+(g=x=>x*x)?g:(x=>x*2)

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

+(g=x=>x*x)?g:(x=>x*2)+(g=x=>x*x)?g:(x=>x*2)

অনলাইনে দ্বিগুণ চেষ্টা করুন!

কিভাবে?

ইউনারী প্রয়োগ করা হচ্ছে +একটি ফাংশন একটি সংখ্যাকে এবং ফলাফলে নিগৃহীত করার চেষ্টা হিসেবে ব্যাখ্যা করা হয় NaN । অতএব, নেতৃস্থানীয় +(g=x=>x*x)উভয় সংস্করণে মিথ্যা হয়।

অন্যদিকে, +2 ফাংশনের মধ্যে বাইনারি প্রয়োগ করার ফলে স্ট্রিং হয়। সুতরাং, (x=>x*2)+(g=x=>x*x)দ্বিগুণ সংস্করণে সত্যবাদী।


বাবু, আপনি কি লক্ষ্য করেছেন যে এটিকেও 11 এর অংশে ভাগ করা যায়?
গুস্ট ভ্যান ডি ওয়াল

7

পার্ল 6 , 8 বাইট (মাপের আকার 1)

* *<1 2>

এটি অনলাইন চেষ্টা করুন! দ্বিগুণ করে দেখুন!

একটি যাই হোক না কেন / হাইপারওয়াসেস ল্যাম্বদা যা একটি সংখ্যা নেয় এবং প্রথম প্রোগ্রামের জন্য একটি নম্বর এবং দ্বিতীয় প্রোগ্রামের জন্য একটি সিঙ্গলটন তালিকা দেয়। মূলত এটি হুবহু যুক্তি রাখে, ব্যাতিক্রম অপারেটর ( *) পরিবর্তক ( ) দ্বারা পরিবর্তিত হয় **

**  **<<11  22>>

আক্ষরিক যাই হোক না কেন (বিভ্রান্তিকরভাবে এ দ্বারা প্রতিনিধিত্ব করা হয় *) একটি হাইপারওয়াইথ ( **যা ) এর দ্বিগুণ হয় যা মূলত এটির তালিকা বাদে মানচিত্র বাদে হয়। আক্ষরিক যাই হোক না কেন গুণকে আলাদা করার জন্য স্থানটির প্রয়োজন হয় এবং দ্বিগুণ হওয়ার পরে তা উপেক্ষা করা হয়। ন্যায়বিচারের পরিবর্তে 2(যা দ্বিগুণ হয়ে যাবে 22) পরিবর্তে আমরা দুটি উপাদানযুক্ত একটি তালিকা ব্যবহার করি, যা সংখ্যার প্রসঙ্গে 2 টির মূল্যায়ন করে)। <>ক্ষেপক সঙ্গে একটি লিস্টে দ্বিগুণ করা যেতে পারে, এবং ভিতরে দুটি উপাদান দ্বিগুণ করা হয়, কিন্তু তন্ন তন্ন সেই পরিবর্তনের তালিকার দৈর্ঘ্য।


6

রুনিক এনেকামেন্টস , 9 বাইট (মাপের আকার 3)

i3?:*@:+@

এটি অনলাইন চেষ্টা করুন!
দ্বিগুণ করে দেখুন!

3?(মৃত্যুদন্ড কার্যকর) পরবর্তী 3 নির্দেশাবলী অগ্রাহ্য, একটি ফলে i3?...:+@। দ্বিগুণ হয়ে গেলে এটি কার্যকর হয় i3?...:*@যেখানে .3 NOP'D নির্দেশাবলী উপস্থাপন করে uted @"পুরো স্ট্যাক মুদ্রণ এবং সমাপ্তি" is


5

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) / জাভাস্ক্রিপ্ট, 22 বাইট, খণ্ড আকার 11

m=>/*      /2*m//*/m*2

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


জাভাস্ক্রিপ্টেও কাজ করে
শেগি

1
এছাড়াও জাভাতে =টু পরিবর্তন করে কাজ করে -। চমৎকার উত্তর!
কেভিন ক্রুইজসেন

2
আমি পছন্দ করি মন্তব্য কীভাবে কোডটি কী করে তা বর্ণনা করে। : পি
আরনাউল্ড

5

মস্তিষ্ক-ফ্লাক , 48 30 বাইট (খণ্ড আকার 10)

(({}))<>( {({}[()])}{}<>{}{}) 

এটি অনলাইন চেষ্টা করুন! দ্বিগুণ করে দেখুন!

এটি মূলত তিনটি পদক্ষেপ নেয়, তারপরে দ্বিগুণ হয়ে গেলে প্রতিটি পদক্ষেপে দুবার এই পদক্ষেপগুলি কার্যকর করা হয়। প্রাথমিক প্রোগ্রামটি হ'ল:

  1. টিওএস সদৃশ করুন, স্ট্যাকগুলি স্যুইচ করুন এবং একটি মান চাপানো শুরু করুন
  2. টিওএসের ত্রিভুজাকার সংখ্যা এন * (এন -1) / 2 পান
  3. পপ টিওএস, সুইচ স্ট্যাক এবং দু'বার পপ করুন, তারপরে ফলাফলটি চাপ দিন।

nএকটি নিঃশব্দ প্রোগ্রামে ইনপুট দেওয়ার জন্য, এর ফলাফল:

1.  Start stack: n n
    Other stack: <
    Third stack: 
2.  Start stack: n n
    Other stack: 0 <
    Third stack: tri(0) = 0
3.  Start stack: n+n+tri(0) = 2n <
    Other stack:
    Third stack:

দ্বিগুণ প্রোগ্রামের জন্য:

1a. Start stack: n n
    Other stack: <
    Third stack: 
1b. Start stack: n n <
    Other stack: 0 0
    Third stack: 
2a. Start stack: n 0 <
    Other stack: 0 0
    Third stack: tri(n)
2b. Start stack: n 0 <
    Other stack: 0 0
    Third stack: tri(n)+tri(0) = tri(n)
3a. Start stack: n
    Other stack: tri(n) <
    Third stack: tri(n)
3a. Start stack: 0+n+tri(n)+tri(n) = n + 2*tri(n) = n + n*(n-1) = n*n <
    Other stack: 
    Third stack: 


4

ব্রেন-ফ্লাক , bytes বাইট, by 76 বাইট খণ্ড

({}<>)(()[([][()])]{(<{}{}({({})({}[()])}<>)<>>)}{}){{}(({})({})<>)(<>)}{}<>

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

দ্বিগুণ (স্পষ্টতার জন্য নতুন লাইন সহ)

({}<>)(()[([][()])]{(<{}{}({({})({}[()])}<>)<>>)}{}){{}(({})({})<>)(<>)}{}<>
({}<>)(()[([][()])]{(<{}{}({({})({}[()])}<>)<>>)}{}){{}(({})({})<>)(<>)}{}<>

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

এখানে এমন একটি সংস্করণ যা আরও জটিল দ্বিগুণ পদ্ধতি ব্যবহার করে। এটি 15 টি আকারের 15 অংশ করে here এখানে কোডটি 46 বাইট তবে প্রয়োজনীয় প্যাডিংয়ের কারণে এটি যথেষ্ট দীর্ঘ।

105 90 বাইট, 15 বাইট খণ্ড

(              {<><({}()())><><><            <>>({})({}[()])}{}            )<>            

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

দ্বিগুণ (স্পষ্টতার জন্য নতুন লাইনের সাথে)

(              (              
{<><({}()())><>{<><({}()())><>
<><            <><            
<>>({})({}[()])<>>({})({}[()])
}{}            }{}            
)<>            )<>            

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


4

কিউবিক্স , 18 14 বাইট (দৈর্ঘ্য 9 7)

*OI$|:/@O+:I. 

পেছনের স্থানটি নোট করুন। এটি অনলাইন চেষ্টা করুন!

দ্বিগুণ:

*OI$|:/*OI$|:/@O+:I. @O+:I. 

আবার, একটি পিছনে স্থান আছে। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

মূল ধারণাটি হ'ল কোড দ্বিগুণ করার ফলে কিউব আরও বড় হয়ে যায়, সুতরাং নির্দেশিকা নির্দেশকটি একটি আলাদা চিহ্ন থেকে শুরু হয়। যেহেতু সংযোজন প্রোগ্রামটি পাশের দৈর্ঘ্য 1 এর ঘনক্ষেত্রে রাখা যায় না, তাই পাশের দৈর্ঘ্য 2 হবে Additionally । এর অর্থ কোডটি কমপক্ষে 13 বাইট দীর্ঘ হতে হবে। যেমন, আরও 1 টি বাইট সংরক্ষণ করা যায়।

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


4

মর্নিংটন ক্রিসেন্ট , 656 বাইট (অংশ আকার 328)

থিওরিতে কেবল ওজন যুক্ত করতে যে এটি প্রায় কোনও ভাষায় সমাধান করা যেতে পারে ...

Take Northern Line to Bank
Take District Line to Bank
Take District Line to Parsons Green
Take District Line to Bank
Take District Line to Hammersmith
Take Piccadilly Line to Russell Square
Take Piccadilly Line to Bounds Green
Take Piccadilly Line to Hammersmith
Take District Line to Upminster
Take District Line to Embankment
Take District Line to Hammersmith
Take District Line to Upminster
Take District Line to Acton Town
Take District Line to Acton Town
Take Piccadilly Line to Bounds Green
Take Piccadilly Line to Bounds Green
Take Piccadilly Line to Leicester Square
Take Northern Line to Leicester Square
Take Northern Line to Mornington Crescent

(পেছনের নতুন লাইনটি গুরুত্বপূর্ণ)

একক সংস্করণ চেষ্টা করুন! ... বা ... দ্বিগুণ সংস্করণ ব্যবহার করে দেখুন!


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

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

ফলাফলটি আউটপুটে নেওয়ার আগে এই ফলাফলটিকে আবার বাউন্ডস গ্রিনে নেওয়া হয়, যা দু'বার সর্বাধিক () অপারেশন করে। একক সংস্করণে এটি দ্বিগুণ হয়ে গেছে আনল্টার্ডকে (ইন্ট এবং স্ট্রিংটি কেবল পিছনে পিছনে স্যুইচ করা হয়েছে) ছেড়ে দেয় তবে দ্বিগুণ সংস্করণে এটি 0 এর পরিবর্তে ইতিমধ্যে বাউন্ড গ্রিনে সঞ্চিত স্কোয়ার্ড ফলাফলের সাথে প্রতিস্থাপন করে।


যদি আমার ব্যাখ্যাটি যথেষ্ট ভাল না হয় তবে আমি আপনাকে লন্ডন পরিদর্শন করার এবং দুটি রুট নিজেই চেষ্টা করার পরামর্শ দিচ্ছি।


টাইপো: আপনার খণ্ডের আকার 328 নয় 326। সিজিসিসিতে আপনাকে স্বাগতম!
রবিন রাইডার

সুন্দর জায়গা, ধন্যবাদ!
আলেভেয়া

@ জোকিং নিশ্চিত যে আমি কীভাবে এটি মিস করেছি! যেমনটি হয়, আমি এটি রুট করেছি যাতে ২ য় অর্ধেকের কোনও অতিরিক্ত অক্ষর নেই, এবং অতিরিক্ত সাদা অংশের প্রয়োজন ছাড়াই ম্যাচের জন্য প্রথমার্ধকে প্যাড করার একটি উপায় খুঁজে পেয়েছি। যাইহোক এইভাবে আরও ভাল দেখায়;)
আলেভিয়া

3

জাভাস্ক্রিপ্ট (নোড.জেএস) , 15 12 বাইট (খণ্ড আকার: 6)

x=>/**/2*(x)

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

একক ক্ষেত্রে:

x=>/**/2*(x)

ডাবল কেস:

x=>/**x=>/**/2*(x)/2*(x)

সি # তেও কাজ করছে বলে মনে হচ্ছে, এবং জাভাতে যদি পরিবর্তন =>হয় ->?


3

আর , 42 35 28 বাইট (খণ্ড আকার 4)

এখন একটি ছোট অংশ এবং কোন ত্রুটি সঙ্গে। আমার খণ্ড আকার 3 এর সাথে দীর্ঘতর সমাধান রয়েছে; নিচে দেখ.

আমি মনে করি না 1 বা 2 অংশের আকারের সাথে একটি উত্তর লিখতে সম্ভব; যে আমাকে ভুল প্রমাণ করে আমি তাকে আনন্দের সাথে একটি অনুদান দেব।

s =scan#
n=s()# 
  
n/2*4#  

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

দ্য #3 য় লাইন শুধুমাত্র ফাঁকা স্থান হয়, NEWLINE +2 স্পেস + + সম্পর্কে newline একটি খণ্ড উপার্জন, পূর্ববর্তী এবং পরবর্তী খণ্ড কোন সম্পর্কে newline থাকতে পারে যাতে আর মন্তব্য করা হয়।

দ্বিগুণ, এটি হয়ে যায়:

s =ss =scan#can#
n=s
n=s()# ()# 
  

  
n/2*n/2*4#  4#  

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

একক সংস্করণ গণনা এন2×4=2এন; ডাবল সংস্করণ গণনাএন2×এন2×4=এন2

এখানে একটি সামান্য দীর্ঘ সমাধান, কিন্তু খণ্ড আকার 3:

আর , 39 বাইট (খণ্ড আকার 3)

s =bbb=scan#
n=s(#
 
)# 
n* 1/ 2/ 1* 4#

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

দ্বিগুণ:

s =s =bbbbbb=sc=scan#an#
n=
n=s(#s(#
 

 
)# )# 
n*
n* 1/ 1/ 2/ 2/ 1* 1* 4# 4#

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

নোট করুন যে 30 টি বাইটের একটি অংশের সাথে জিউসেপের আরও একটি আর উত্তর রয়েছে।


3

আর , 59 30 বাইট (মাপের আকার 59 30)

F=F+1;f=function(n)n*c(2,n)[F]

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

এটি অনুপ্রেরণার জন্য রবিন রাইডারকে কৃতিত্ব ; Fপ্রতিটি সময় বৃদ্ধি , এবং ফাংশন fউপযুক্ত আউটপুট নির্বাচন করে।

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


2

পাওয়ারশেল , 22 বাইট (মাপের আকার 11)

param($p)
#   /
2 * $p

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

দ্বিগুণ:

param($p)
#param($p)
#   /
2 * $p   /
2 * $p

এই সমাধানটি @ শিয়েরুআসাকোটোর সমাধানের উপর ভিত্তি করে ।

@ গ্রিমি সলিউশন যা পাওয়ারশেল, ২ by বাইটে রূপান্তরিত হয়েছে (আকার 13)

param($p)$t=';$p*$p#';$p*2

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

দ্বিগুণ:

param($p)$t=';param($p)$t=';$p*$p#';$p*2$p*$p#';$p*2

1
দুর্ভাগ্যক্রমে আপনার একটি খণ্ড আকার হওয়া দরকার যা আপনার কোডকে সমান অংশে ভাগ করে দেয়। প্রাথমিক দৈর্ঘ্যের সমাধান সম্পর্কে প্রশ্নের উদাহরণ হিসাবে।
জন রিস

@ জনআরিস, আমি আমার উত্তর সংশোধন করেছি, ধন্যবাদ।
আন্দ্রে ওদেগোভ

1

পার্ল 5 ( -p), 22 15 বাইট

-7 বাইট ধন্যবাদ গ্রিমিকে

$_*=$'/4||2;//;

Tio



আপনার সমাধানটি খুঁজছেন, আমি সবেমাত্র একটি 22 বাইট সমাধান পেয়েছি
নাহুয়েল ফিউইউল

বুঝেছি, প্রথম ইনপুট * = 2, তারপরে ইনপুট দ্বারা * = ইনপুট / 4
নাহুয়েল ফিউইলুল

অন্য 16 বাইট (-এ)$_*=/@F/?2:$_/4;
নাহুয়েল ফিউইলুল

8-এর নিচে (এটি পৃথক উত্তর হিসাবে পোস্ট করার কারণে এটি একেবারেই আলাদা)।
গ্রিমি

1

কাঠকয়লা , 13 বাইট

PI×Iθ⎇υIθ²⊞υω

এটি অনলাইন চেষ্টা করুন! ব্যাখ্যা: পূর্বনির্ধারিত খালি তালিকাটি মিথ্যা তাই ইনপুটটি 2 দিয়ে গুণিত হয় the দ্বিতীয় পাসের দ্বিগুণ হলে দেখায় খালি স্ট্রিংটি তালিকার দিকে ঠেলে দেওয়া হয়েছে সুতরাং এটি তার পরিবর্তে নিজেই ইনপুটটিকে বহুগুণ করে। এটি অনলাইন চেষ্টা করুন! ভার্জোজ সিনট্যাক্সে এটি এর সাথে মিলে যায় Multiprint(Cast(Times(Cast(q), Ternary(u, Cast(q), 2)))); Push(u, w);


1

পাইথন 3, 56 53 বাইট

print(eval(input()+"**2"[len(*open(__file__))%2:])) #

আমার অজগর দক্ষতা কিন্ডা স্তন্যপান, সুতরাং অবশ্যই গল্ফ করা যেতে পারে .. " পাই দ্বীনের উত্স দ্বিগুণ, আপনি আউটপুট দ্বিগুণ! " চ্যালেঞ্জ

খণ্ড দৈর্ঘ্য 53।

এটি অনলাইনে চেষ্টা করুন বা অনলাইনে দ্বিগুণ করে দেখুন


1

জাভা 8, 62 বাইট

n->n*(Byte.SIZE>8?n:2);/*
class Byte{static int SIZE=9;}/**///

খণ্ড দৈর্ঘ্য 62।

এটি অনলাইনে চেষ্টা করুন বা অনলাইনে দ্বিগুণ করে দেখুন

ব্যাখ্যা:

n->                    // Method with integer as both parameter and return-type
  n*                   //  The input, multiplied by:
    (Byte.SIZE>8?      //   If Byte.SIZE is larger than 8:
      n                //    Multiply by the input itself
     :                 //   Else:
      2);              //    Multiply by 2
class Byte{            // Class which overwrites Byte
  static int SIZE=9;}  //  And sets the SIZE to 9

জাভাতে, উপলব্ধ মন্তব্যগুলি হ'ল // commentএবং /* comment */। যা এখানে একত্রিত হয়ে নির্দিষ্ট অংশগুলিকে ওভাররাইট করে। জাভা হাইলাইট করার জন্য এই মন্তব্যগুলি কীভাবে ধন্যবাদ জানায় তা দেখুন:

n->n*(Byte.SIZE>8?n:2);/*
class Byte{static int SIZE=9;}/**///

n->n*(Byte.SIZE>8?n:2);/*
class Byte{static int SIZE=9;}/**///n->n*(Byte.SIZE>8?n:2);/*
class Byte{static int SIZE=9;}/**///

দ্বিগুণ প্রোগ্রাম একটি কাস্টম Byteক্লাস এবং এর মান তৈরি করেছে SIZE=9, যা ডিফল্ট java.lang.Byteশ্রেণি এবং এর মানটিকে ওভাররাইট করে SIZE=8


1

জাপট , 7 5 বাইট

*N²jJ

চেষ্টা করে দেখুন |দ্বিগুণ

²ইনপুট অ্যারের 2 পাহাড় জমে Nতারপরj উপাদানটিকে সূচকগুলিতে সরিয়ে দেয় এবং ফেরত দেয় J=-1(অর্থাত্ সদ্য সন্নিবেশ করা হয়েছে)2 ) এবং এর দ্বারা ইনপুটটিকে গুণিত করে।

দ্বিগুণ হয়ে গেলে এর Jফলে গুণফল হয় 2, সুতরাং সূচকের উপাদানটি -2(যেমন, ইনপুট) দ্বারা ফিরে আসে jএবং গুণক হিসাবে ব্যবহৃত হয়।



1

দুর্দান্ত সমাধান: লুয়া , by 66 বাইট (আকার 66 66 বাইট)

a,x=a and...^2 or ...*2,setmetatable(x or{},{__gc=load'print(a)'})

এটি অনলাইন চেষ্টা করুন!(নিজেকে দ্বিগুণ করুন, এটি এত কঠিন নয়)

হ্যাঁ হ্যাঁ, এটির পক্ষে আরও সংক্ষিপ্ত সমাধান রয়েছে তা নিশ্চিত but তবে এটিই সবচেয়ে ভাল this প্রথম যুক্তি হিসাবে ইনপুট নিন।

সংক্ষিপ্ত বিবরণ: সাথে পুরো ব্যবসা aসবার পক্ষে বেশ স্পষ্ট, অন্যদিকে দ্বিতীয় অংশটি xআরও আকর্ষণীয়। মূলত, আমি ফাইনালাইজারের সাথে একটি টেবিল তৈরি করি (বা দ্বিতীয় পাসে বিদ্যমান একটি আপডেট করি)__gc মেমেথোথোথড) করি) যা প্রোগ্রামটি সরে গেলে কল হয়।

খোঁড়া দ্রবণ: লুয়া , 60 বাইট (আকার 30 বাইট)

a=a and...^2 or ...*2;                     print(a)os.exit()

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

আরও ছোট এবং আরও ভাল ছাঁটাইয়ের সাথে, তবে শেষ পর্যন্ত বিরক্তিকর এবং কোনও চালাক কৌশল ছাড়াই খোঁড়া me আমি নিশ্চিত যে এর জন্য কোনও মন্তব্যের প্রয়োজন নেই।



1

জে , 15 10 9 বাইট

+: :(*-:)

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

দ্বিগুণ সংস্করণ: এটি অনলাইনে চেষ্টা করুন!

f : gএকটি ক্রিয়া তৈরি করে যা কার্যকর হয় fযখন একটি যুক্তির সাহায্যে ডাকা হয় এবং gযখন 2 টি যুক্তি দিয়ে ডাকা হয়। সুতরাং আমাদের +:মূল উত্স এবং দ্বিগুণ কার্যকর*-: দ্বিগুণ কার্যকর করে যখন উত্সটি দ্বিগুণ হয়।

এটি কাজ করে কারণ জেতে দুটি ক্রিয়াগুলির একটি ট্রেন হুক হয়ে যায়, এবং এভাবেই যেখানে y আসল ইনপুট হয় f fতা কার্যকর করা y f (f y)হয়। অতিরিক্তভাবে, *-:নিজেই এটি একটি "ডায়াডিক হুক" যা *বাম দিকের অর্গটিকে -:ডান দিকের অর্গের অর্ধেক করে ভাগ করে কাজ করে । বাম দিকটি মূল ইনপুট হবে এবং ডান দিকের আর্গ ইনপুট দ্বিগুণ হবে, সুতরাং এটি মূল ইনপুটটির বর্গ তৈরি করবে।

মূল উত্তর

জে , 15 বাইট

*:@]`(+:@])@.=~

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

দ্বিগুণ সংস্করণ: এটি অনলাইনে চেষ্টা করুন!

একক সংস্করণে, আমাদের একটি একক ক্রিয়া রয়েছে যা এজেন্ডা ব্যবহার @.করে যদি তা করে ... তবে যুক্তি: যদি যুক্তি নিজের সাথে সমান হয় =~, তবে যুক্তিটি গ্রহণ করুন এবং এটি দ্বিগুণ করুন (+:@[)

যাইহোক, আমরা যখন কোডটি দ্বিগুণ করি তখন আমরা একটি জে হুক পাই। ক্রিয়া fএবং ইনপুট কল করুন y। তারপরে f fহুকটি এভাবে চালিত করে:

y f (f y)

যার অর্থ হ'ল এখন আসল ইনপুটটি বাম আর্গ এবং ডান দিকের আরগটি দ্বিগুণ ইনপুট। যেহেতু এগুলি সমান হবে না, এবার =~মিথ্যা ফিরে আসবে, এবং এখন আমরা এজেন্ডার অন্য কাঁটাচামড়া কার্যকর করব *:@], যার অর্থ "ডান আর্গাকে বর্গাকার" " এবং যেহেতু ~ডায়াডিক ক্রিয়াটির ইনপুটগুলি বিপরীত করে, ডান দিকের আর্গই মূল ইনপুট হবে।


1

পাইথন ঘ , 60 বাইট

খণ্ড আকার
a. একটি দুর্দান্ত সমাধান নয়, তবে এটি কাজ করে। এটি এমন একটি অনন্য চ্যালেঞ্জ, এটি আপনাকে অন্য দৃষ্টিকোণ থেকে ভাবতে বাধ্য করে।

0;  i=input;0;  p=print;n=i()#
x=int(n)##
z=2*x#z=x*x
p(z)##

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

দ্বিগুণ:

0;  i=0;  i=input;input;0;  p=0;  p=print;print;n=i()#n=i()#
x=int
x=int(n)##
(n)##
z=2*x#z=2*x#z=x*x
z=x*x
p(z)##p(z)##

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


1

ক্যাসকেড , 13 বাইট (খণ্ড আকার 13)

]
&/2
#
*
 2&

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

]
&/2
#
*
 2&]
&/2
#
*
 2&

দ্বিগুণ করে দেখুন!

এটা বেশ কঠিন ছিল। এর মূল সূত্রটি হ'ল 2প্রথম প্রোগ্রামটির জন্য গুণিত ইনপুটটি মুদ্রণ 2করা এবং দ্বিতীয়টির জন্য ইনপুটটির অনুলিপি দ্বারা প্রতিস্থাপন করা ।

ব্যাখ্যা:

প্রথম প্রোগ্রামটির নির্বাহিত অংশটি দেখে মনে হচ্ছে

]     Redirection
 /
#     Print
*     The multiplication of
 2&   Input and 2 (wrapping around the left)

দ্বিগুণ প্রোগ্রামটি মূলত ]শেষ লাইনের শেষে প্রথমটি যুক্ত করে , তাই প্রোগ্রামটি এর পরিবর্তে এর সাথে জড়িয়ে যায় &। এটি এটিকে পরিণত করে

]     Redirection
 /
#     Print
*     The multiplication of
 2 ]  Set the value of
& 2   The variable '2' to the input
      Then multiply the result of that (input) by '2' (input)

0

Zsh , 30 বাইট (খণ্ড আকার 10)

m=$m[1]*2
x=$[$1$m]
return $x

এটি অনলাইন চেষ্টা করুন! দ্বিগুণ করে দেখুন!

নির্যাতনের যে $varমধ্যে $[$var]প্রথম প্রসারিত পায়, তারপর গাণিতিক প্রেক্ষাপটে মূল্যায়ন করেন।

             # each line is 9 characters long. when doubled, each is run twice.
m=$m[1]*2    # first time: m='*2'   second time: $m[1] is '*', so m='**2'
x=$[$1$m]    # single: x=$[$1*2]    doubled: x=$[$1**2];x=$[$1**2].
return $x    # zsh supports 32-bit return values from functions, unlike bash

যদি কেউ এটি হ্রাস করতে একটি ক্র্যাক চান, তবে 24/8আমি যে সমাধানটি পেয়েছি তার নিকটতম এখানে ( x^2+2দ্বিগুণ হওয়ার পরে আউটপুট )

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