স্বতন্ত্র যোগগুলি তৈরি করা


10

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

আরও একটি প্রয়োজনীয়তা রয়েছে: দুটি সংখ্যা দুটি পৃথক ইনপুটগুলির আউটপুট অংশ হতে পারে না

বিস্তারিত

  • আপনার কমপক্ষে পরিসীমা -32768 .. 32767(অন্তর্ভুক্ত) জন্য ইনপুটগুলি পরিচালনা করতে সক্ষম হওয়া উচিত ।
  • যদি আপনার ডাটাটাইপটি স্বেচ্ছাচারিত পুরো সংখ্যা পরিচালনা করতে না পারে তবে তা ঠিক আছে তবে আপনার অ্যালগরিদম তাত্ত্বিকভাবে স্বেচ্ছাসেবী এবং ছোট সংখ্যার জন্য কাজ করা উচিত।

উদাহরণ

প্রতিটি ব্লক এর বিন্যাসে একটি সঠিক বা ভুল সমাধানের একটি অংশ দেখায় input => output

1 => 6 -5
2 => -2 4
15 => 20 -5

Incorrect, as `-5` is used in two outputs.

-5 => -15 10
0 => 0 0
1 => 5 6
2 => -5 7

Incorrect, as `5 + 6` isn't `1`.

-1 => -1 0
0 => 6 -6
2 => 1 1

Can be correct if other outputs doesn't collide.

এটি কোড গল্ফ তাই সংক্ষিপ্ত এন্ট্রি জিতেছে।


আপনি কি ইনপুট পরিসীমা -32768 পর্যন্ত সীমাবদ্ধ করতে পারেন? 32767 তাই আমাদের 17 বিট পূর্ণসংখ্যা ব্যবহার করতে হবে না?
FUZxxl

@FUZxxl আমার খারাপ, এটিই উদ্দেশ্য ছিল। সংশোধন করা হয়েছে।
এলোমেলো

আউটপুটটি দুটি সংখ্যাসমূহের তালিকা / অ্যারে / টিপল / সেট / ইত্যাদি হতে পারে? (উদাহরণস্বরূপ, চ (1) => [2, -1])
মনোপোল

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

উত্তর:


9

পাইথ, 8 বাইট

_J^Q3+QJ

প্রদর্শন. পাইথন 2 কোডের সমান:

Q=input()
J=Q**3
print -J
print Q+J

সুতরাং, আউটপুট ফর্ম আছে (-n**3, n+n**3)

কিছু ফলাফল:

-5 (125, -130)
-4 (64, -68)
-3 (27, -30)
-2 (8, -10)
-1 (1, -2)
 0 (0, 0)
 1 (-1, 2)
 2 (-8, 10)
 3 (-27, 30)
 4 (-64, 68)
 5 (-125, 130)

এই পৃথক কারণ কিউব খুব বেশী কথা ব্যবধানে করছেন যে যোগ nকরার n**3পরবর্তী ঘনক্ষেত্র থেকে ফাঁক পার হতে যথেষ্ট নয়: n**3 < n+n**3 < (n+1)**3ইতিবাচক জন্য n, এবং নিয়মনিষ্ঠভাবে নেতিবাচক জন্য n


,শুরুতে আপনার দরকার নেই , দুটি লাইনের অনুমতি রয়েছে বলে মনে হচ্ছে।
মালটিসেন

@ মালটিসেন আমি এটি অপসারণের চেষ্টা করেছি, তবে কেবল দ্বিতীয় সংখ্যাটি প্রিন্ট করে। Jঅ্যাসাইনমেন্ট মুদ্রণ দমন করতে পারে ?
xnor

ওহ হ্যাঁ আপনি ঠিক বলেছেন, দুঃখিত।
মালটিসেন

-pyth মধ্যে ইউনারী অস্বীকৃতি অপারেটর, তার নয় _, তাই _J^Q3+QJহিসাবে প্রত্যাশিত কাজ করে।
মালটিসেন

@ মালটিসেন আসলে, এটি কাজ করে, আমার কেবল Jবাইরে থাকা উচিত নয়। এই সম্পর্কে আমাকে poking জন্য ধন্যবাদ।
xnor

8

স্নোম্যান 0.1.0 , 101 অক্ষর rs

}vg0aa@@*45,eQ.:?}0AaG0`NdE`;:?}1;bI%10sB%nM2np`*`%.*#NaBna!*+#@~%@0nG\]:.;:;bI~0-NdEnMtSsP" "sP.tSsP

STDIN এ ইনপুট, STDOUT এ স্পেস-বিভাজিত আউটপুট।

এটি ইস্যাকের উত্তর হিসাবে একই পদ্ধতি ব্যবহার করে।

"পাঠযোগ্যতা" এর জন্য নতুন লাইনের সাথে মন্তব্য করা সংস্করণ:

}vg0aa          // get input, take the first char
@@*45,eQ.       // check if it's a 45 (ASCII for -) (we also discard the 0 here)
// this is an if-else
:               // (if)
  ?}0AaG        // remove first char of input (the negative sign)
  0`NdE`        // store a -1 in variable e, set active vars to beg
;
:               // (else)
  ?}1           // store a 1 in variable e, set active vars to beg
;bI             // active variables are now guaranteed to be beg
%10sB           // parse input as number (from-base with base 10)
%nM             // multiply by either 1 or -1, as stored in var e earlier
2np`*`          // raise to the power of 2 (and discard the 2)
%.              // now we have the original number in b, its square in d, and
                //   active vars are bdg
*#NaBna!*+#     // add abs(input number) to the square (without modifying the
                //   input variable, by juggling around permavars)
@~%@0nG\]       // active vars are now abcfh, and we have (0>n) in c (where n is
                //   the input number)
:.;:;bI         // if n is negative, swap d (n^2) and g (n^2+n)
~0-NdEnM        // multiply d by -1 (d is n^2 if n is positive, n^2+n otherwise)
tSsP            // print d
" "sP           // print a space
.tSsP           // print g

পিপিসিজি-তে প্রথম স্নোম্যান সলিউশন সম্পর্কে ভাষ্য: আমি মনে করি আমার ভাষাকে যতটা সম্ভব বিভ্রান্তিকর করে তোলার লক্ষ্যে আমার নকশা লক্ষ্য অর্জন করা হয়েছে।

এটি আসলে অনেক খাটো হতে পারে তবে আমি একজন বোকা এবং স্ট্রিংয়ের জন্য নেতিবাচক সংখ্যাগুলি প্রয়োগ করতে ভুলে গেছি -> সংখ্যা বিচ্ছেদকরণ। সুতরাং আমাকে -প্রথম চরিত্র হিসাবে কোনও আছে কিনা তা নিজেই পরীক্ষা করে দেখতে হয়েছিল এবং যদি তা হয় তবে তা সরিয়ে ফেলতে হয়েছিল।


1
ব্রেইনফাকের চেয়ে ভাল উপায়।
ফেজ

1
অস্ট্রিচ এ সম্পর্কে কেমন অনুভব করে? ;)
কেড

6

পাইথ, 15 11 বাইট

4 জ্যাকেট @ জাকুবকে ধন্যবাদ

*RQ,hJ.aQ_J

প্রদর্শন.

এই মানচিত্রগুলি নিম্নরূপ:

0  -> 0, 0
1  -> 2, -1
-1 -> -2, 1
2  -> 6, -4
-2 -> -6, 4

এবং তাই, সর্বদা জড়িত n^2এবং n^2 + n, যোগ বা বিয়োগ।



2

পাইথ - 11 10 বাইট

কেবল 10e10 এবং -10e10 + 1 দ্বারা গুণিত করুন @xnor আমাকে CGএই সংখ্যাটির জন্য ব্যবহার করতে পারার জন্য ধন্যবাদ ।

*CGQ_*tCGQ

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


আপনি হিসাবে যথেষ্ট পরিমাণে করতে পারেন CG
xnor

@xnor টিপস তালিকায় যুক্ত করা।
মালটিসেন

2

, 17 15 9 বাইট

ও এর কয়েকটি নতুন বৈশিষ্ট্য ব্যবহার করে

চতুর্থাংশ 3 ^ .Q + + p_p

পুরানো সংস্করণ

[আমি # .Z3 ^ * \ Z3 ^): _ *] ণ

1
আমি এই হে উত্তরগুলি উপভোগ করতে শুরু করছি, যদিও জাভাতে
অনুবাদকটি

@ kirbyfan64sos এটি পাইথের মতো ছোট নয়, তবে এটি সিজাম এবং গল্ফস্ক্রিপ্টকে কিছু ক্ষেত্রে পরাজিত করতে পারে। এরা শক্তিশালী হওয়ায় এটি অ্যারেগুলির সাথে যে কোনও কিছু করতে পারা যায় def
পর্ব

1

পাইথন 3, 29 27

সম্পাদনা করুন: দ্বিতীয় "বিবরণ" বুলেট পয়েন্টে প্রয়োজনীয়তা পূরণ করে না

বোনাস: এটি অন্তর্ভুক্ত -99998 থেকে 99998 পর্যন্ত কাজ করে


lambda n:[99999*n,-99998*n]

এটি একটি বেনামি ফাংশন * তৈরি করে, যা আপনি বন্ধনীগুলিতে আবদ্ধ করে এবং পরে যুক্তিটি বন্ধনীতে রেখে এভাবে ব্যবহার করতে পারেন:

(lambda n:[99999*n,-99998*n])(arg)

* এটি প্রস্তাব দেওয়ার জন্য @ ভয়েজ-কে ধন্যবাদ।


ইনপুট / আউটপুট উদাহরণ:

>>> (lambda n:[99999*n,-99998*n])(1)
[99999, -99998]
>>> (lambda n:[99999*n,-99998*n])(2)
[199998, -199996]
>>> (lambda n:[99999*n,-99998*n])(0)
[0, 0]
>>> (lambda n:[99999*n,-99998*n])(-1)
[-99999, 99998]
>>> (lambda n:[99999*n,-99998*n])(-2)
[-199998, 199996]
>>> (lambda n:[99999*n,-99998*n])(65536)
[6553534464, -6553468928]

1
চমৎকার পোস্ট! ঠিক তাই আপনি জানেন, আপনি এটি অপসারণ করতে পারেন f=এবং এটি একটি বেনামি ফাংশন হিসাবে রেখে দিতে পারেন, যা এখনও একটি বৈধ উত্তর। তারপরে আপনি আপনার বাইট গণনাটি
কেড

1
"... আপনার অ্যালগরিদমটি তাত্ত্বিকভাবে স্বেচ্ছাসেবী এবং ছোট সংখ্যার জন্য কাজ করা উচিত" " স্পষ্টতই (lambda n:[99999*n,-99998*n])(99999)এবং (lambda n:[99999*n,-99998*n])(-99998)তত্ত্বের সাথে সংঘর্ষ হবে (এবং অনুশীলনে))
ম্যাথমন্ডন

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

0

হাস্কেল, 16 বাইট

আমি নির্লজ্জভাবে @ xnor এর পদ্ধতিটি অনুলিপি করেছি। এর চেয়ে সম্ভবত এর চেয়ে ভাল আর কিছু নেই।

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