পরস্পরবিরোধী বহুগোষ্ঠী


19

ভাল, সবাই পলিগ্লট পছন্দ করে । আপনাকে ইনপুটের কোনও স্ট্যান্ডার্ড আকারে (কোনও হার্ডকোডিং নেই) দুটি পূর্ণসংখ্যা দেওয়া হবে। আপনার কাজটি হ'ল একটি বহুভুজ লিখুন যা কোনও ভাষার সর্বনিম্ন মান এবং অন্য ভাষার মধ্যে দুটি সংখ্যার মধ্যে সর্বাধিক মান খুঁজে পায় এবং নিম্নলিখিত ক্রিয়াকলাপ সম্পাদন করে:

  • যে কোডটি সর্বাধিক মান খুঁজে পায় তাদের অবশ্যই তাদের যোগফল গণনা করতে হবে।
  • যে প্রোগ্রামটি সর্বনিম্ন মান খুঁজে পায় তাদের অবশ্যই বিয়োগের ফলাফলও গণনা করতে হবে ( max - min)
  • এখানে "চতুর অংশ" হয় : দুটি সংখ্যার সমান, উভয় তাহলে প্রোগ্রাম অবশ্যই না আউটপুট / রিটার্ন কিছু (উভয় STDOUTএবং STDERRঅথবা অন্য কোন returnপদ্ধতি)
  • দেখুন আউটপুট চশমা ফর্ম্যাটিংয়ের সম্বন্ধে আরো বিস্তারিত জানার জন্য অধ্যায়

ইনপুট

উপরে উল্লিখিত হিসাবে, দুটি পূর্ণসংখ্যক যে কোনও মানক পদ্ধতিতে ইনপুট হিসাবে নেওয়া হয়েছে, উভয় ভাষারই সাধারণ।

আউটপুট চশমা

  • প্রোগ্রামটি যা খুঁজে পায় তার maxজন্য ফর্ম্যাটটি হওয়া উচিত:max_value, addition result
  • প্রোগ্রামটি যা খুঁজে পায় তার minজন্য ফর্ম্যাটটি হওয়া উচিতmin_value, subtraction result (max - min)
  • ফলাফল কোনো স্পষ্ট বিভেদক (সঙ্গে, প্রিন্ট করা যাবে , \n, ,বা যাই হোক না কেন অন্য যদি আপনি চান), একটি স্ট্রিং একটি বিভেদক সহ বা সংখ্যার একটি তালিকা হিসাবে দুই প্রত্যাশিত মান ধারণকারী হিসাবে ফাংশন থেকে ফেরত (উদাহরণ: [max_value,sum])

উদাহরণ:

Input   || Max Language Output || Min Language Output

100, 40 || 100, 140            || 40, 60
63, 67  || 67, 130             || 63, 4
-45, -5 || -5, -50             || -45, 40
21, 21  ||                     ||
-1, 1   || 1, 0                || -1, 2 

স্কোরিং:

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


@ ডাউনভোটার কেন এমন ছিল?
মিঃ এক্সকোডার

6
আমি কমপক্ষে কয়েকদিন স্যান্ডবক্সে প্রশ্ন রাখার পরামর্শ দিই যাতে তারা মূল পোস্টের আগে যথেষ্ট মনোযোগ পেতে পারে। আমি ডাউনভোট করিনি।
এরিক আউটগল্ফার

গডডমিট, একটি পাই 2 / পাই 3 উত্তর লিখেছিল এবং ঠিক যেমন পোস্ট করতে চলেছি নিয়মটি দেখেছি। 30 মিনিট আমি কখনই হাহাকে ফিরে পাব না।
sagiksp

উত্তর:


6

05 এ বি 1 ই / জেলি , 21 20 বাইট

-1 বাইট কিছু সাহায্য চেয়ে জিজ্ঞাসা করার পরে - ধন্যবাদ Emigna! ( `হবে push(uwrapped(pop())))

কাঁচা বাইট (ডানদিকে ডাম্পগুলি দেখায় যে আমার উইন্ডোজ মেশিনটি কী প্রদর্শন করে):

60 ca 69 b9 5a 73 4f 29 71 93 18 fa 2c d3 f7 d3    `Êi¹ZsO)q..ú,Ó÷Ó
cd 04 18 2f                                         Í../

উভয়ই তালিকা উপস্থাপনা হিসাবে STDIN এবং আউটপুট থেকে STDOUT এ ইনপুট নেয় [x, y]

সর্বাধিক ভাষাটি 05AB1E:

`Êi¹ZsO)q“.ú,Ó÷ÓÍ../

যেখানে এটি কোডপেজ. ( সিপি 1252 ) এ অপ্রিন্টযোগ্য বাইট উপস্থাপন করে এবং আপনি এখানে যা ব্যবহার করছেন তা সম্ভবত এখানে (0x18 = CANএবং 0x04 = EOT)।

ব্যবহার করে দেখুন 05AB1E সংস্করণ

নূন্যতম ভাষা হ'ল জেলি:

İ__iỤZs0)qƓð«,ạẋạṠ¥ð/

জেলি সংস্করণ চেষ্টা করুন ।

কিভাবে?

05AB1E:

`Êi¹ZsO)q“.ú,Ó÷ÓÍ../ - parsed left to right, executed as parsed
                     - implicit input taken
  i                  - If:
`                    -     push(unwrapped(pop()))
 Ê                   -     push(pop()!=pop())
                     - ...Then:
   ¹                 -     push(1st item from input history)
    Z                -     push(max(top of stack))
     s               -     push(reverse(pop(),pop()))
      O              -     push(sum(pop()))
       )             -     wrap(pop())
        q            -     quit - implicit print of top of stack
         “.ú,Ó÷ÓÍ../ - unexecuted and unparsed string

জেলি:

`ȮiỤZs0)qƓð«,ạẋạṠ¥ð/ - parsed left to right, not executed until parsed
`ȮiỤZs0              - a dyadic chain which would error if executed (monad from dyad, index of, grade up, transpose, split into chunks of length 0)
       )q            - currently unassigned code points each currently creates a new link
         Ɠ           - read and evaluate a line of input
          ð       ð  - dyadic chain separations
                   / - reduce by:
           «         -     minimum(left, right)
             ạ       -     absolute difference(left, right)
            ,        -     pair(result)
                 ¥   -     last two links as a dyad:
               ạ     -         absolute difference(left, right)
                Ṡ    -         sign(result) (i.e. {0:0, +x:1, -x:-1} but -x never happens)
              ẋ      -     repeat list left right times
                     - implicit print

18

সি এবং সি ++ (জিসিসি), 117 107 বাইট

-10 বাইটস @ স্টেডিবক্সকে ধন্যবাদ!

#include<stdio.h>
int f(int a,int b){auto c=.5;a-b&&printf("%d %d",c?b<a?b:a:a>b?a:b,c?a-b>0?a-b:b-a:a+b);}

ব্যাখ্যা: সি-তে, auto c=.5অটো স্টোরেজ শ্রেণীর (যা পূর্বনির্ধারিত) এর সাথে একটি পূর্ণসংখ্যার ভেরিয়েবল ঘোষনা করে, যা পরে 0-এ শুরু করা হয়, যেখানে সি ++ 11 এ এটি একটি ডাবল ঘোষণা করে, এটি 0.5 থেকে শুরু করে। সুতরাং ভেরিয়েবলের মান সি ++ এ সত্যবাদী এবং সি-তে মিথ্যা হবে

সি - সর্বোচ্চ ভাষা: এটি অনলাইনে চেষ্টা করুন!

সি ++ - মিনিট ভাষা: এটি অনলাইনে ব্যবহার করে দেখুন!


2
খুব স্মার্ট সমাধান। আমি কোন মন্তব্য ব্যবহার করা হয়নি যে সত্য পছন্দ।
মিঃ এক্সকোডার

5
কয়েকটি বাইট সংরক্ষণ করতে, আপনি একটি ভেরিয়েবল ঘোষণা করতে পারেন auto c=.5এবং তার cপরিবর্তে ব্যবহার করতে পারেন sizeof'a'-1। সি-তে, auto c=.5অটো স্টোরেজ ক্লাসের সাথে একটি পূর্ণসংখ্যার ভেরিয়েবল (যা পূর্বনির্ধারিত) ঘোষণা করে, যা পরে 0-এ শুরু করা হয়েছে, যখন সি ++ 11 এ এটি একটি ডাবল ঘোষণা করে, যা 0.5 থেকে শুরু করা হয়। সুতরাং ভেরিয়েবলের মান সি ++ তে সত্য এবং সি
মিথ্যা হবে

9

পাইথন 3 / জেলি , 42 বাইট

ফাইলটি এনকোড করতে জেলির কোড-পৃষ্ঠা ব্যবহার করা হচ্ছে ।

কাঁচা বাইট:

6c 61 6d 62 64 61 20 78 2c 79 3a 5b 6d 61 78 28    lambda x,y:[max(
78 2c 79 29 2c 78 2b 79 5d 2a 28 78 21 3d 79 29    x,y),x+y]*(x!=y)
0a 23 7f fa 2c d3 f7 d3 cd 04                      .#.ú,Ó÷ÓÍ.

উভয়ই একটি নামবিহীন ডায়াডিক ফাংশন সংজ্ঞায়িত করে।

পাইথন (সর্বাধিক ভাষা) দেখেছে:

lambda x,y:[max(x,y),x+y]*(x!=y)
#\x7fú,Ó÷ÓÍ\x04

পাইথন হিসাবে টেস্ট

জেলি (ন্যূনতম ভাষা) দেখেছে:

lambda x,y:[max(x,y),x+y]*(x!=y)½#
«,ạẋạṠ¥

জেলি হিসাবে টেস্ট

কিভাবে?

জেলি 0x0a কে ½বর্গমূলের পরমাণুর হিসাবে ব্যাখ্যা করে, যখন পাইথন এটি একটি নতুন লাইন হিসাবে ব্যাখ্যা করে। জেলি 0x7f এ লিঙ্কগুলি (ফাংশন) এর মধ্যে পৃথকীকরণ হিসাবে ব্যাখ্যা করা হয় এবং এর কোডডে একটি নতুন লাইন বা একটি পাইলক্রো দ্বারা প্রতিনিধিত্ব করা হয়। জেলির জন্য শেষ লিঙ্কটি হ'ল মূল ফাংশন - এখানে এটি উপরের লিঙ্কটিকে কল করে না (যা দোভাষীর এখনও সঠিকভাবে পার্স করতে হবে)। পাইথন 0x23 এ #নির্দেশ দেয় যে এর পরে এবং 0x0a এর আগে একটি নতুন লাইন একটি মন্তব্য।

পাইথন কোড যা কার্যকর হয়:

lambda x,y:[max(x,y),x+y]*(x!=y)
lambda x,y:                      - A function taking two inputs, x and y
           [        ,   ]        - A list with two items
            max(x,y)             - take the maximum of x and y
                     x+y         - x plus y
                           x!=y  - x not equal to y?
                         *(    ) - multiply - True is treated as if it were 1, False as if it were 0

জেলি কোড যা কার্যকর হয়:

«,ạẋạṠ¥ - A dyadic link (function of two variables): x, y
«       - minimum(x, y)
  ạ     - absolute difference(x, y)
 ,      - pair left with right (creating a list)
      ¥ - last two links as a dyad:
     ạ  -     absolute difference(x, y)
    Ṡ   -     sign(result) (i.e. {0:0, +x:1, -x:-1} but -x never happens)
   ẋ    - repeat the list to the left right times (either the same list or an empty list)
        - return the result

আকর্ষণীয় ভাষা পছন্দ
মিঃ এক্সকোডার

বাইটটি নিচে নামার জন্য জেলি কোডটিকে অন্য গল্ফিং ভাষার সাথে একত্রিত করা প্রায় অবশ্যই সম্ভব।
জোনাথন অ্যালান

উম্ম ... আপনার কোড স্নিপেটগুলি পৃথক বলে মনে হচ্ছে।
এরিক আউটগল্ফার

1
@EriktheOutgolfer ঐ কোড ব্লক কাঁচা বাইটের (অত: পর মাত্র উপস্থাপনা \x7fএবং \x04পাইথন এক unprintables জন্য)।
জোনাথন অ্যালান

1
@ জোনাথন অ্যালান না, আমি বোঝাতে চাইছি যে আপনার স্নিপেটগুলি সত্যিই আলাদা। প্রতিটি জন্য পাইথন কোডটি দেখুন।
এরিক দ্য আউটগল্ফার

8

রুবি / পাইথন 3, 102 বাইট

রুবি সর্বোচ্চ / যোগফল দেয়, পাইথন মিনিট / পার্থক্য ফেরত দেয়। ইনপুটটি STDIN থেকে পঠিত একটি অ্যারে অবজেক্ট।

a=eval((0and gets or input()))
b=a.sort()
x,y=(b or a)
z=0 or 1
x==y or print([[y,x][z],[x+y,y-x][z]])

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

অনলাইনে চেষ্টা করুন: পাইথন on

এখানে ব্যবহৃত মূল কৌতুকটি হ'ল 0রুবিতে সত্যের ব্যবহার , যা পাইথনে মিথ্যা। উল্লেখ করার মতো অন্যান্য বিষয় হ'ল পাইথনের sortফাংশন তালিকাটি স্থানের Noneপরিবর্তিত করে ফিরে আসে , যখন রুবি তার সাজানো অ্যারেটি দেয় না এবং ফেরত দেয়, তাই b or aন্যূনতম / সর্বাধিক পাওয়ার জন্য প্রয়োজন।

পাইথন 3 প্রয়োজনীয় কারণ আপনি শেষ লাইনে স্টেটমেন্টের printপরে কল করার চেষ্টা করলে পাইথন 2 অভিযোগ করে or


এতো চালাক! +1
অর্জুন

4

জাভা / এডাব্লুকে , 219 217 212 196 বাইট

/*#\/* /
{$0=((x=$1)<y=$2)?x" "y-x:y" "x-y}x!=y
#*/interface B{static void main(String[]A){Integer x=Integer.parseInt(A[0]);int y=x.parseInt(A[1]);System.out.print(x==y?"":(x<y?y:x)+" "+(x+y));}}

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

জাভা সর্বাধিক এবং যোগফল আউটপুট করে, AWK মিনিট এবং পার্থক্য আউটপুট করে। ইনপুটগুলি অভিন্ন হলে উভয়ের জন্য কোনও আউটপুট নেই।

এটি আমার প্রথম বহুভক্ত এবং প্রথম টিআইও :)


3

জাভাস্ক্রিপ্ট (ES6) / কিউবাসিক, 172 171 বাইট

'';f=x=>{m=Math.max(...x);s=Math.min(...x);if(x[0]!=x[1])alert([m,m-s])}/*
INPUT c
LET m=c
LET s=c
INPUT n
IF n>c THEN m=n
IF n<c THEN s=n
IF n<>c THEN PRINT m,m+s
END
'*/

অনুরূপ প্রশ্নের আমার এই সমাধানের ভিত্তিতে ।

এই সমাধানটিও মন্তব্য পদ্ধতির ব্যবহার করুন!

জাভাস্ক্রিপ্ট হ'ল ন্যূনতম ভাষা। এটি ইনপুট হিসাবে সংখ্যার সমন্বিত একটি অ্যারে গ্রহণ করে। দুটি সংখ্যা পৃথক করে আউটপুট দেয় ,(প্রথম সংখ্যাটি ইনপুট-অ্যারের ক্ষুদ্রতম মান এবং 2 য় সংখ্যাটি ইনপুট-অ্যারের বৃহত্তম এবং ক্ষুদ্রতম মানের পার্থক্য) alert()ing alert()সংখ্যা সমান হলে কিছু হয় না । আপনি যেমন ফাংশন কল করতে পারেন f([100,40])

কিউ বেসিক সর্বাধিক ভাষা- বারবার ইনপুট চেয়েছে, দুবার। ইনপুট-সংখ্যার বৃহত্তম সংখ্যার পাশাপাশি ইনপুটটির বৃহত্তম এবং ক্ষুদ্রতম সংখ্যার যোগফল মুদ্রণ করে। PRINTসংখ্যা সমান হলে কিছু হয় না ।


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

কিউব্যাসিক (কাঠামোগত বেসিক পরিবারের একটি ভাষা; এটির জন্য লাইন সংখ্যার প্রয়োজন হয় না), 'একটি মন্তব্যের শুরু চিহ্নিত করে যা লাইনের শেষ অবধি চলে goes যদিও জাভাস্ক্রিপ্টে এটি একটি স্ট্রিংয়ের সূচনা করে। সুতরাং, পুরো প্রথম লাইনটি কিউব্যাসিকের একটি মন্তব্য হিসাবে চিহ্নিত হয়েছে তবে জাভাস্ক্রিপ্টে, লাইনটি কার্যকর করা হয়েছে (এবং এই লাইনে জাভাস্ক্রিপ্ট অংশ রয়েছে যা সবচেয়ে কম সংখ্যার এবং বৃহত্তর এবং ক্ষুদ্রতম সংখ্যার পার্থক্য গণনা করে, পাশাপাশি একটি /*শেষে যা জাভাস্ক্রিপ্ট ইন্টারপ্রেটার থেকে কিউ বেসিক কোডের বাকী অংশটি গোপন করার জন্য একটি মন্তব্য শুরু করে)

দ্বিতীয় লাইন থেকে দ্বিতীয়-শেষ লাইনের কোডটিতে সর্বাধিক সংখ্যা এবং সবচেয়ে বড় এবং ক্ষুদ্রতম সংখ্যার যোগফল (কোডটি খুব স্ব-বর্ণনামূলক) থাকে কিউব্যাসিক কোড ধারণ করে।

শেষ লাইন থাকে '*/'কিউব্যাসিক দোভাষীকে নীচের কোডটি একটি মন্তব্য হিসাবে ব্যাখ্যা করার কারণ তৈরি করেছে, যেখানে জাভাস্ক্রিপ্টে, এটি কোনও মন্তব্যের অংশ হিসাবে এটি প্রভাব ফেলবে না (যা প্রথম পংক্তির শেষে শুরু হয়েছিল)। নিম্নলিখিত কোডটি ( */) জাভাস্ক্রিপ্টকে প্রথম লাইনে শুরু হওয়া মন্তব্যটি শেষ করে দেয়, তবে এটি কিউব্যাসিকে কার্যকর করা হয়নি কারণ কিউব্যাসিক মনে করেন এটি একটি মন্তব্যের একটি অংশ।


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

জাভাস্ক্রিপ্ট (ন্যূনতম ভাষা):

'';f=x=>{m=Math.max(...x);s=Math.min(...x);if(x[0]!=x[1])alert([m,m-s])}/*
INPUT c
LET m=c
LET s=c
INPUT n
IF n>c THEN m=n
IF n<c THEN s=n
IF n<>c THEN PRINT m,m+s
END
'*/

f([100,40]);

কিউব্যাসিক (সর্বাধিক ভাষা):

এই ওয়েবসাইটে যান । নীচের কোডটি তাদের পাঠ্য-সম্পাদকটিতে অনুলিপি করুন:

1 '';f=x=>{m=Math.max(...x);s=Math.min(...x);if(x[0]!=x[1])alert([m,m-s])}/*
2 INPUT c
3 LET m=c
4 LET s=c
5 INPUT n
6 IF n>c THEN m=n
7 IF n<c THEN s=n
8 IF n<>c THEN PRINT m,m+s
9 END
10 '*/

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

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