আইওএস 11 ক্যালকুলেটর প্রয়োগ করুন


43

আইওএস 11 এর মধ্যে একটি বাগ রয়েছে যা 1 + 2 + 3 এর ফলাফলকে 24 হতে দেয় । এটি অ্যানিমেশন গতির সাথে সম্পর্কিত তবে যাইহোক:

কাজটিই করা 1 + 2 + 3 == 24। তবে কেবল তাই। তাই আপনি যদি একটি ফাংশন যে সঠিকভাবে সবচেয়ে সিকোয়েন্স কিন্তু আয় অঙ্কের প্রদান করা উচিত 24যখন আর্গুমেন্ট 1, 2এবং 3কোনো অনুক্রমে।

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

1 2 => 3
3 4 => 7
1 2 3 4 5 6 7 8 9 => 45
3 2 1 => 24
2 1 3 => 24
1 1 => 2
1 2 3 => 24
40 2 => 42
1 2 2 4 => 9
1 2 3 4 1 2 3 => 16
1 => 1
1 23 => 24
0 1 2 => 3
3 2 3 => 8

ইনপুট যতক্ষণ না আপনার কোড যে কোনও সংখ্যক আর্গুমেন্ট গ্রহণ করে ততক্ষণ কোনও ফর্ম্যাটে থাকতে পারে।

  • নেতিবাচক সংখ্যার জন্য সমর্থন প্রয়োজন হয় না (সমস্ত অ নেতিবাচক সংখ্যা কাজ করার জন্য প্রয়োজন, যার মধ্যে রয়েছে 0)
  • আমরা সঠিক ইনপুট ধরে নিই

অন্য একটি অনুরূপ প্রশ্ন থেকে পার্থক্য : "আপনি যখন 9 দ্বারা 6 গুন করবেন তখন আপনি কী পাবেন? (42)" :

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

23
এছাড়াও, আইওএস 11 এর মতো কাজ করে না। পরিবর্তে এটির মতো হওয়া উচিত । ( কোড ব্যাখ্যা )
ব্যবহারকারী 202729

3
@ ব্যবহারকারী202729 প্রশ্নটি সম্ভবত আইওএস 11 দ্বারা অনুপ্রাণিত হয়েছে আমি মনে করি না যে ওপি আপনাকে সম্পূর্ণরূপে এটি প্রতিলিপি করতে বলছে।
Okx

2
@ অকক্স ঠিক এটি মজাদার জন্য, এটি 1 থেকে 1 বাস্তবায়ন করার জন্য নয় অবশ্যই অবশ্যই এটি ব্যবহারকারীর প্রস্তাব 202729-এ পরিবর্তিত হতে পারে, তবে যদি তিনি চান তবে তিনি এই জাতীয় কাজ দিয়ে নতুন চ্যালেঞ্জ তৈরি করতে পারেন।
হাউলেথ

3
ইনপুটগুলি পূর্ণসংখ্যা হয়?
xnor

9
এটি একটি সুন্দর চ্যালেঞ্জের কারণ হ'ল সংখ্যার এই সংমিশ্রণটি খুব বিশেষ সংযুক্ত সম্পত্তিটির সাথে যুক্ত । এটি একটি সুন্দর চ্যালেঞ্জের অন্য কারণ হ'ল এটি অ্যাপলকে কার্যকারিতার চেয়ে ইউএক্সকে অগ্রাধিকার দেওয়ার জন্য মজা দেয়।
এনএইচ।

উত্তর:


11

এমএটিএল , 11 10 বাইট

St3:X=6*+s

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

ব্যাখ্যা

        % implicit input [3,1,2]
S       % sort
        % STACK: [1,2,3]
t       % duplicate elements
3:      % push range 1..3
        % STACK: [1,2,3], [1,2,3], [1,2,3]
X=      % true if arrays are numerically equal
        % STACK: [1,2,3], 1
6*+     % multiply result of comparison by 6 and add to the original array
        % STACK: [7,8,9]
s       % sum
        % (implicit) convert to string and display


11

জাভা 8, 109 106 101 90 75 74 71 66 বাইট

a->{int s=0,p=0;for(int i:a){s+=i;p|=1<<i;}return s<7&p==14?24:s;}

-12 বাইটস @ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ ।
-31 বাইট @ নেভায়ে ধন্যবাদ ।

ব্যাখ্যা:

এখানে চেষ্টা করুন।

a->{                  // Method with integer-array parameter and boolean return-type
  int s=0,            //  Sum-integer, starting at 0
      p=1;            //  Product-integer, starting at 1
  for(int i:a){       //  Loop over the input-array
    s+=i;             //   Add current item to sum
    p|=1<<i;          //   Take 1 bitwise left-shifted with `i`, and bitwise-OR it with `p`
  }                   //  End of loop
  return p==14        //  If `p` is now exactly 14 (`0b1110`)
    &s<7?             //  and the sum is 6 or lower:
     24               //   Return 24
    :                 //  Else:
     s;               //   Return the sum
}                     // End of method

(অদক্ষ) প্রমাণ যে শুধুমাত্র [1,2,3](যে কোন অনুক্রমে) সম্ভব ফলাফল হতে হবে যখন pহয় 0b1110( p==14) এবং সমষ্টি নিচে 6 অথবা LOWER (হয় s<7): তা এখানে চেষ্টা করুন।

p==14( 0b1110) সত্য মূল্যায়ণ iff ইনপুট মান 32 কভার মান modulo 1, 2এবং 3এবং অন্য কোনো মান (ধারণ p|=1<<i) (প্রতিটি মান 1+ বার ঘটতে আছে)। মেলে এমন ইনপুটটির যোগফল ( সহ ) ব্যতীত অন্য কোনও ইনপুটের p==14চেয়ে বড় হবে । @Nevay61,2,3s=a*1+b*2+c*3+u*32a>0,b>0,c>0,u>=0


পুরানো 71 বাইট উত্তর:

a->{int s=0,p=1;for(int i:a){s+=i;p*=i;}return a.length==3&p==s?s*4:s;}

প্রমাণ করুন যে তিনটি প্রদত্ত অ-শূন্য প্রাকৃতিক সংখ্যার জন্য, শুধুমাত্র [1,2,3](যে কোনও ক্রমে) তার পণ্যের সমান পরিমাণ হবে ( 1+2+3 == 1*2*3) (ধনাত্মক যোগফল সহ):
যখন যোগফলটি লিও কুর্ল্যান্ডচিক এবং আন্দ্রেজেজ নওইকি দ্বারা পণ্যটির সমান হবে

(অপর্যাপ্ত) প্রমাণ যা কেবলমাত্র [1,2,3]( যে কোনও ক্রমে) এবং [0,0,0]অ-নেতিবাচক সংখ্যা এবং 3 এর দৈর্ঘ্যের সহিত সম্ভাব্য ফলাফল: এটি এখানে চেষ্টা করুন।
তাই s*4ইচ্ছা হয়ে 6*4 = 24জন্য [1,2,3], এবং 0*4 = 0জন্য [0,0,0]



7

এমএটিএল , 13 বাইট

stGp=18*Gda*+

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

এটি অন্যান্য এমএটিএল উত্তরের চেয়ে দুটি বাইট দীর্ঘ, তবে এটি সম্পূর্ণ আলাদা (এবং আইএমও আরও আকর্ষণীয়) পদ্ধতির ব্যবহার করে, তাই আমি বুঝতে পেরেছিলাম যে এটি পোস্ট করার উপযুক্ত।

ব্যাখ্যা:

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

তিনটি উপাদান সহ একটি অ্যারের যোগফল এবং পণ্যটি কেবল সমান হয় যদি অ্যারেরটির এক অনুক্রম হয় 1,2,3

এটি ইনপুট নেয়, যোগফল গণনা করে sএবং এর সদৃশ করে t। এরপরে এটি যোগফলের সমান হয় কিনা তা পরীক্ষা করে Gp=। আমরা বুলিয়ানটিকে 1/018 দ্বারা গুণিত করব 18*এবং ভেক্টরটিতে অ-অভিন্ন মান রয়েছে কিনা তা পরীক্ষা করে দেখুন da*(আবার, একটি বুলিয়ান any(diff(x))দিয়ে গুণ করুন We আমরা দুটিকে গুণ করে শেষ সংখ্যাকে মূল যোগফলে যোগ করব।

ধাপে ধাপে ব্যাখ্যা:

ধরুন ইনপুটটি হ'ল [1, 2, 3]:

s                              % Implicit input, calculate the sum
                               % 6
 t                             % Duplicate the sum:
                               % 6, 6
  G                            % Grab input
                               % 6, 6, [1,2,3]
   p                           % Calculate the product
                               % 6, 6, 6
    =                          % Check if the last two elements are equal
                               % 6, 1 (true)
     18*                       % Push 18, multiply by the last number
                               % 6, 18
        G                      % Grab input
                               % 6, 18, [1,2,3]
         d                     % Calculate the difference between each element
                               % 6, 18, [1,1]
          a                    % any non zero elements?
                               % 6, 18, 1 (true)
           *                   % Multiply last two numbers
                               % 6, 18
            +                  % Add numbers. Result: 24

6

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

lambda*a:sum(a)+18*(sorted(a)==[1,2,3])

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

যদি সাজানো ইনপুটটি অন্য পাইথন উত্তরটিকে বাইট দ্বারা [1, 2, 3]হারাতে হয় তবে 18 যুক্ত করার একটি বিকল্প পদ্ধতি ব্যবহার করে ।


sorted(a)==[1,2,3]set(a)=={1,2,3}3 বাইট সংরক্ষণ করতে পারে ।
mypetlion

1
@ মাইপেটলিয়ন দুর্ভাগ্যক্রমে এটি ডুপ্লিকেট সহ তালিকাগুলির ক্ষেত্রে সত্য হয়ে [1, 2, 3, 3]
উঠবে

Woops। আমি যদিও আমরা ঠিক 3 ইনপুট মধ্যে সীমাবদ্ধ ছিল।
mypetlion

6

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

f[a,b,c]|2^a+2^b+2^c==14=24
f l=sum l

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

আমরা ব্যতিক্রমী কেস ধরতে প্যাটার্ন ম্যাচিং ব্যবহার করি।

হাস্কেলের অন্তর্নির্মিত বিল্ডিং নেই। অ-নেতিবাচক পূর্ণসংখ্যার মধ্যে একের অনুমতি দিয়েই সাম্যতা 2^a+2^b+2^c==14সন্তুষ্ট হয় । একটি সংক্ষিপ্ত প্রায় কাজ করে, তবে এতে সন্তুষ্ট হয় এবং চেকটি সংযোজন এটিকে আরও 1 বাইট দীর্ঘ করে দেয়।[a,b,c][1,2,3]a+b+c=a*b*c[0,0,0],a>0


4

অক্টাভা , 34 বাইট

@(x)sum(x)+isequal(sort(x),1:3)*18

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

অথবা

@(x)(s=sum(x))+18*~(s-6|prod(x)-6)

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

অথবা

@(x)(s=sum(x))+18*~(s-prod(x)|s-6)

এই পদ্ধতির অন্যদের ব্যবহারের চেয়ে খাটো হল: @(x){24,sum(x)}{2-isequal(sort(x),1:3)}

ব্যাখ্যা:

এটি ভেক্টরের যোগফল নিয়ে যায় এবং বাছাই করা ভেক্টরের সমান হলে 18 যোগ করে 1,2,3। এটি দিবে 6+18=24যদি ভেক্টরটির অনুক্রম হয় 1,2,3, এবং যদি না হয় তবে কেবল ভেক্টরের যোগফল।


4

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

গল্ফ চ্যালেঞ্জের এটি আমার প্রথম প্রয়াস, এবং এটি পিএইচপি, এমন একটি ভাষা যা স্পষ্টতই গল্ফিংয়ে ব্যর্থ হয় যেহেতু আমি খুব কমই এখানে দেখি, তাই ... আহ, আমি চেষ্টা করেছিলাম?

<?php
//call as var/www/html/cg_ios.php --'1 2 3 4 5'
$i=$argv[1];$a=(explode(' ',$i));echo((($b=array_sum($a))==6&&count($a)==3&&in_array(3,$a)&&!in_array(0,$a)?24:$b));

দ্রষ্টব্য: আমি মন্তব্যটি বাইট কাউন্টে অন্তর্ভুক্ত করি নি।

Ungolfed

এটি বিশেষ টিবিএইচ কিছুই নয়:

$i=$argv[1];             //Read the input from the command line
$a=array_filter($c=explode(' ',$i)) //Split the input string into an array, use Whitespace as delimiter
                         //also, remove all 0 from the array, since they are not important at all
echo(                    //print the result
    ($b=array_sum($a) == 6  //If The SUM of the Array is 6 ...
        &&               //... AND ...
    (count($c) == 3)     //... the array has exactly 3 values ...
        &&               //... AND ...
    in_array(3,$a)       // ... the array contains the value 3 ...
        &&               // ... AND ...  
    !in_array(0,$a)      //... the array contains no zeros
        ?
    24                   //print 24
        :
    $b));     //print the sum of the array values we saved earlier

আপনি যদি পিএইচপিফিডেলে এটি পরীক্ষা করতে চান এবং কনসোলে নেই, আপনি অবশ্যই আপনার পছন্দসই $iকিছু প্রতিস্থাপন করতে পারেন।

অলিভিয়ার গ্রাগোয়ারকে ধন্যবাদ, যিনি আমাকে [0,3,3]আগে ২৪ টি ফিরে আসা স্ট্রিং সংমিশ্রণ সম্পর্কে সচেতন করেছিলেন এবং আমাকে array_sumফাংশনটি পুনরায় সঞ্চালনের পরিবর্তে স্টোর করে এবং ফিরিয়ে কয়েক অক্ষর সংরক্ষণ করতে সহায়তা করেছিলেন ।


সাইটে স্বাগতম, এবং প্রথম প্রথম পোস্ট!
২১ শে

ইনপুট মান সম্পর্কে কি [0, 3, 3]? এছাড়াও, array_sum($a)আপনি একটি পরিবর্তনশীল মধ্যে ফলাফল সংরক্ষণ এবং এটি পুনরায় ব্যবহার করতে পারবেন না ?
অলিভিয়ের

@ অলিভিয়ারগ্রোগোয়ার এটি এখনই ঠিক হয়ে গেছে, আমি অবশ্যই এই মামলাটি মিস করেছি। আমি সম্ভবত আরও ভাল সমাধানের কথা ভাবতে পারি, এটি হ'ল - এমনকি আমার মানদণ্ডগুলির জন্য - সত্যই ... অগোছালো।
YU NO WORK

গল্ফযুক্ত কোডটি নিখোঁজ রয়েছে
আরজিভিতে

4

আর, 47 বাইট 34 বাইট 36 বাইট

x=scan();all(sort(x)==1:3)*18+sum(x)

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

ইনপুটটি যোগ করুন এবং ইনপুট সেটটি 1: 3 হলে 18 যুক্ত করুন।
11 বাইট বন্ধ করে গলফ করার জন্য @ এমল্টকে ধন্যবাদ Thanks ওভারগল্ফড কোড সহ ত্রুটি শনাক্ত করার জন্য @ আইয়বি 4 বিটিটুকে ধন্যবাদ


3

জাভাস্ক্রিপ্ট ES6, 39 বাইট

@ হারমান লাউস্টেইনকে ধন্যবাদ

a=>a.sort()=="1,2,3"?24:eval(a.join`+`)

f=a=>a.sort()=="1,2,3"?24:eval(a.join`+`)

console.log(f([1,2,3]));
console.log(f([1,2,3,4]));

পূর্ববর্তী উত্তর

জাভাস্ক্রিপ্ট ES6, 66 বাইট

a=>(n=[1,2,3],a.every(_=>n.includes(_))?24:a.reduce((x,y)=>x+y,0))

চেষ্টা করে দেখুন

f=a=>(n=[1,2,3],a.every(_=>n.includes(_))?24:a.reduce((x,y)=>x+y,0))

console.log(f([1,2,3]));
console.log(f([1,3,2]));
console.log(f([1,2,3,4]));


58 বাইট:a=>(Array.sort(a).join()=="1,2,3"?24:a.reduce((x,y)=>x+y))
Okx

a.sort()=="1,2,3"কাজ করে।
নিল

39 বাইট: a=>a.sort()=="1,2,3"?24:eval(a.joinBT+BT)(ব্যাকটিক্স দিয়ে বিটি প্রতিস্থাপন)
হারমান এল

3

সুইফট, 67 বাইট

func z(i: [Int])->Int{return i.sorted()==[1,2,3] ?24:i.reduce(0,+)}

[ইনট] এ এক্সটেনশনগুলি দিয়ে এটি 27 বাইটে তৈরি করতে পারে তবে তা প্রতারণা হবে :(


1
সাইটে স্বাগতম! এটি একটি কোড গল্ফ প্রতিযোগিতা, দয়া করে আপনি যতটা সম্ভব কোড গল্ফ করতে পারেন, যেমন স্পেসগুলি সরিয়ে দিয়ে। এছাড়াও, আমি সুইফটকে চিনি না, তবে আমি যদি সঠিক হয়ে থাকি তবে এটি কোনও চলকটিতে ইনপুট সংরক্ষণ করে, যা অনুমোদিত নয়। তবে আপনাকে এটিকে কোনও কার্যক্রমে রূপান্তরিত করার অনুমতি দেওয়া হয়েছে।
কায়ার্ড কইনিরিংহিংহ

1
নিচে Golfed একটু: func z(i:[Int]){print(i.sorted()==[1,2,3] ?24:i.reduce(0,+))}
মিঃ এক্সকডার

1
বা 55 বাইট (-12): {$0.sorted()==[1,2,3] ?24:$0.reduce(0,+)}as([Int])->Intবেনামে ফাংশন হিসাবে আমাদের মান নিয়ম দ্বারা অনুমোদিত। আপনি এখানে এটি কাজ করে দেখতে পারেন ।
মিঃ এক্সকডার

@ মিঃ এক্সকোডার আপনি castালাই বাদ দিতে পারেন এবং আপনি যে ঘোষণা দিয়ে চলেছেন তা এটিকে যুক্ত করতে পারে। বা প্রকারটি বন্ধের ভিতরে রাখুন এবং আপনি মুক্তি পেতে পারেন as:)
ডোমিনিক বুচার

2
সুইফ্টের জন্য +1। এটি কি আইওএস ক্যালকুলেটরের মূল উত্স কোড?
জিবি


2

জে, 17 বাইট

-6 বাইট ধন্যবাদ ফ্রাউনি ব্যাঙকে

+/*1+3*1 2 3-:/:~

সমস্ত সংখ্যার যোগফল +/এবং ফলাফল (সিউডোকোড) দ্বারা গুণিত করুন 1 + 3*(is123 ? 1 : 0)। অর্থাৎ, বাছাই করা তালিকাটি যদি না হয় তবে ফলটি অপরিবর্তিত 1 2 3রেখে দিন ফলাফলটি আমরা 4 দ্বারা গুণিত করব।

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

মূল উত্তর

+/`(24"_)@.(1 2 3-:/:~)

বাছাই করা ইনপুট কিনা তা পরীক্ষা করে দেখুন 1 2 3- হ্যাঁ, ধ্রুবক ক্রিয়াকলাপটি 24 ( 24"_) চালিত করুন ; যদি না হয় তবে যোগফলটি ফেরত দিন+/

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


আমি সত্যিই জে জানি না করতে পারেন, কিন্তু 1 2 3i.3?
উরিল

@ ইউরিয়েল, i.3উত্পাদন করে 0 1 2, তাই আপনাকে এমন কাজ করতে হবে 1+i.3যা কোনও অক্ষর সংরক্ষণ করে না তবে কম পরিষ্কার।
জোনা

ঠিক আছে, আমি ভুলে গেছি জ 0 0 ইনডেক্সড
উরিয়েল

[:+/8"0^:(1 2 3-:/:~)
ফ্রাউনফ্রোগ



2

লুয়া , 116 81 বাইট

-7 বাইট জোনাথনকে ধন্যবাদ

কমান্ড লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয়

Z=0S={}for i=1,#arg do
j=arg[i]+0S[j]=0Z=Z+j
end
print(#S>2 and#arg<4 and 24or Z)

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

ব্যাখ্যা:

একটি স্পার্স অ্যারে তৈরি Sকরে এবং ইনপুট মানগুলির সাথে সূচকগুলিতে শূন্য যুক্ত করে কাজ করে । যদি পরামিতিগুলি 3, 4, 7স্পার্স অ্যারে হয় তবে সেই সূচকগুলিতে কেবল সংখ্যা থাকবে। এই অ্যারের সাথে, আমরা অপারেটরের সাথে এটির দৈর্ঘ্য পাই #যা সূচক থেকে 1উচ্চতর সূচক পর্যন্ত গণনা করা হয় যার একটি মান রয়েছে, যদি এই দৈর্ঘ্যটি ঠিক হয় 3তবে এর অর্থ এই যে পজিশনে উপাদান রয়েছে 1, 2এবং 3আমরা যা চাই খুঁজছি. স্পার্স অ্যারের দৈর্ঘ্য সর্বদা 0এবং পরামিতিগুলির সংখ্যা Nযেখানে থাকবে be Nসুতরাং আমাদের কেবলমাত্র প্যারামিটার অ্যারে এবং স্পার্স অ্যারে উভয়ের দৈর্ঘ্য কিনা তা পরীক্ষা করে দেখতে হবে 3



আপনি কিছুই দেখতে পান নি (আমি আমার মন্তব্য সম্পাদনা করেছি, যেহেতু এটি এখনও 5 মিনিটের পরে হয়নি; পি)
কেভিন ক্রুইজসেন

হ্যাঁ, আমার নিজের উত্তরে ঠিক একই ত্রুটি পাওয়া গেছে .. আমি অ্যারে-দৈর্ঘ্য == 3 এবং এ == এস এবং এস> 0 ব্যবহার করে এটি ঠিক করেছি। তবে আমার ধারণা #args, লুয়ার দৈর্ঘ্য পরীক্ষা করা কি খুব বেশি বাইট-ভারী?
সেক্ষেত্রে আপনি


@JonathanS। দুর্দান্ত একটি
ফিলিপ নার্দি বাতিস্তা

2

আর , 55 45 54 49 57 54 48 বাইট

অনেকগুলি বাইট সংরক্ষণ করেছেন এবং ভুল সমাধানগুলি আইআইবি 4 বিটিউকে ধন্যবাদ।

সংরক্ষিত 3 9: Giuseppe ধন্যবাদ বাইট। আমি এই সত্যটিকে অপব্যবহারের জন্য নতুন উপায় শিখতে থাকি F==0

"if"((s=sum(x<-scan()))-prod(x)|sum(x|1)-3,s,24)

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

অন্য আর উত্তর শেষ পর্যন্ত জিতেছে।


ব্যর্থ [0,0,0]: 24পরিবর্তে রিটার্ন 0
অলিভিয়ার

স্পষ্টতই আমি 'অ-নেতিবাচক' এবং 'একক সংখ্যা হতে পারে' উভয়ই মিস করেছি। অপেক্ষা কর.
বিএলটি

c(1,1,2,3)এর 28পরিবর্তে ফিরে আসে7
আইয়ব

@ আইবি 4 বিটিটু ধন্যবাদ, ধন্যবাদ
বিএলটি ২

1
x=scan();s=sum(x);"if"(s-prod(x)|s-6|length(x)-3,s,24)54 বাইট শর্তটি অদলবদল করে এবং এর |পরিবর্তে ব্যবহার করে &আমরা বিয়োগ করতে পারি।
জিউসেপ


1

রেটিনা , 21 বাইট

O`
^1¶2¶3$
24
.+
$*
1

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

ইনপুট লাইনফিড-পৃথক, তবে পরীক্ষার স্যুট সুবিধার জন্য কমা-বিচ্ছেদ ব্যবহার করে।

ব্যাখ্যা

O`

সাজান সংখ্যা (lexicographically, আসলে, কিন্তু আমরা শুধু ক্ষেত্রে যত্নশীল যে ইনপুট হয় 1, 2, 3কিছু আদেশ, যেখানে যে একটি পার্থক্য করতে নেই)।

^1¶2¶3$
24

যদি ইনপুটটি 1,2,3(কোনও ক্রমে) হয় তবে এটি 24 দিয়ে প্রতিস্থাপন করুন।

.+
$*

প্রতিটি সংখ্যা আনারিতে রূপান্তর করুন।

1

1S এর সংখ্যা গণনা করুন , যা অবিচ্ছিন্ন সংখ্যা যুক্ত করে এবং তাদেরকে দশমিক দশকে রূপান্তর করে।


কৌতূহলের বাইরে, আপনার ব্যাখ্যার উপর ভিত্তি করে আমি বুঝতে পারি চূড়ান্ত লাইনটি ম্যাচের সমস্ত উপস্থিতি ( 1এই ক্ষেত্রে সমস্ত) গণনা করে । রেটিনা কি সর্বদা একক চূড়ান্ত লাইনের জন্য এটি করে? অথবা 1এর মধ্যে কোথাও কোথাও সমস্ত গণনা করাও সম্ভব এবং তারপরে ফলাফলের সাথে অন্য কিছু করার জন্য চালিয়ে যাওয়া (যা পুনরায় প্রতিস্থাপনের জন্য দুটি লাইন ব্যবহার করে)? এছাড়াও, আরও একটি সম্পর্কিত প্রশ্ন: রেটিনার কোন ফাংশনগুলির জন্য কেবল একটি লাইন প্রয়োজন? বাছাই ( O`) তাদের মধ্যে একটি, এবং অন্যান্য ফাংশনগুলিও; কিন্তু অন্য কোন? আরও কিছুটা রেটিনাকে বোঝার চেষ্টা করছি। :)
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুইজসেন হ্যাঁ আপনি মাঝের কোথাও একটি (গণনা) ম্যাচ মঞ্চটি ব্যবহার করতে পারেন তবে আপনাকে এটি স্পষ্টরূপে ম্যাচের মঞ্চ হিসাবে চিহ্নিত করতে হবে M`। এটি কেবলমাত্র যদি একটি একক ট্রেলিং লাইন থাকে যে রেটিনা এপলসটির Mপরিবর্তে Rঅ্যাচ-তে ডিফল্ট হয় । AGMTSসব একক লাইন পর্যায়ে রয়েছে Rদুই লাইন হয়, Oএবং Dকিনা তার উপর নির্ভর করে এক বা দুই লাইন আছে $বিকল্প ব্যবহার করা হয় (যা তাদের সাজানোর / deduplicate- মধ্যে সক্রিয় দ্বারা পর্যায়ে)। আপনার আরও প্রশ্ন থাকলে রেটিনা চ্যাটরুমে আমাকে নির্দ্বিধায় নির্দ্বিধায় পান: chat.stackexchange.com/rooms/41525/retina
মার্টিন

1

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

f a|sum a==6,product a==6,a<[6]=24|1<2=sum a

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

এর একাধিক বিন্যাসন [1,2,3]একমাত্র পার্টিশন হয় 6যার পণ্য 6, ছাড়া 6নিজেই। (এটি অনুমান করে যে ইনপুটগুলি অ-নেতিবাচক, যা মনে হয় সমস্ত পরীক্ষার ক্ষেত্রে এটিই ঘটবে… আমি এই বিষয়ে ওপিকে জিজ্ঞাসা করেছি))



1

পিএল / এসকিউএল - 135 123 বাইট

আমি কোনও আকারের পূর্ণসংখ্যার অ্যারের ইনপুট হিসাবে ধরে নিচ্ছি:

if (select sum(s) = exp(sum(ln(s))) from unnest(i) s) then
    return 24;
else
    return (select sum(s) from unnest(i) s);
end if;

পিপিসিজিতে আপনাকে স্বাগতম! উত্তরটি অপঠনযোগ্য হয়ে উঠলেও (যতক্ষণ এটি সংকলন করা যায়, ততক্ষণ) সমস্ত অতিরিক্ত স্থান সরিয়ে আপনি কী গল্ফ দেওয়ার চেষ্টা করতে পারেন?
অলিভিয়ার

1

সি ++ 17, 56 54 বাইট

[](auto...i){return(-i&...)+4|(~i*...)+24?(i+...):24;}

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

নোট করুন যে তৈরি করা ফাংশন অবজেক্টটি সংকলনের সময়ে ব্যবহারযোগ্য, সুতরাং কোনও প্রোগ্রাম চালানো ছাড়াই সংকলক দ্বারা পরীক্ষাগুলি করা হয়।

ব্যাখ্যা:

[]             // Callable object with empty closure,
(auto...i)     // deduced argument types,
{              // and deduced return type
  return       //
      (-i&...) //   If the fold over the bitwise AND of the negation of each argument
    +4|        // is unequal to -4, or
      (~i*...) //   if the product of the bitwise complements of the arguments
    +24?       // is unequal to -24, then
      (i+...): //   return the sum of the arguments, otherwise
      24;}     //   return 24.

প্রমাণ যে একমাত্র nonnegative i...যার (-i&...)সমান -4 এবং (~i*...)সমান -24 সমান হ'ল 1, 2, 3:

আমরা প্রথমে পর্যালোচনা করি যেহেতু -0= 0, যদি কোনও i= 0তবে (-i&...) = 0, তাই আমরা সিদ্ধান্তে পৌঁছেছি যে সমস্ত iইতিবাচক।

এখন, নোট করুন যে 2 এর পরিপূরকগুলিতে, -iএর সমতুল্য ~(i - 1), এবং ~iসমতুল্য -(i + 1)। ডি মরগানের নিয়ম প্রয়োগ করে আমরা দেখতে পাই যে (-i & ...)= ~((i - 1) | ...)= -(((i - 1) | ...) + 1), তাই ((i - 1) | ...) = 3; একইভাবে, -1 ** n * ((i + 1) * ...) = -24তাই nবিজোড় এবং ((i + 1) * ...) = 24

২৪ এর মূল কারণগুলি হ'ল ২ ** 3 * 3, সুতরাং n<= 4. যদি n= 1, আমাদের রয়েছে i - 1 = 3এবং i + 1 = 24তাই n= ৩. তবে iব্লগটি লিখুন a <= b <= c, তবে স্পষ্টভাবে a= 1 অন্যথায় (a + 1)(b + 1)(c + 1)> = 27. এছাড়াও c<= 4 হিসাবে অন্যথায় (a - 1)|(b - 1)|(c - 1)> = c৪ হিসাবে 4 হতে পারে না এটি ২৪ এর ফ্যাক্টর নয়, তাই c<= ৩. তারপরে (a - 1)|(b - 1)|(c - 1) = 3সি = 3, বি = 2 কে সন্তুষ্ট করতে হবে।


1

কাস্তে , 9 বাইট

?K24Σ=ḣ3O

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

ব্যাখ্যা

?K24Σ=ḣ3O
        O    Sort the input
?    =ḣ3     If it is equal to [1,2,3]:
 K24           Return 24
             Else:
    Σ          Return the sum of the input

পূর্ববর্তী সমাধান

[২,২] এর ভুল ফল দেয় এবং সম্ভবত অন্যান্য ইনপুটগুলিও এটি আকর্ষণীয় ছিল।

?ṁD→E§eΠΣ
     §eΠΣ    Build a two-element list with the product and sum of the input
?   E        If the two elements are equal:
             (true for any permutation of [1,2,3] and the list [0,0,0]
 ṁD            Double both elements and sum them
               (This is 4 times the sum: 24 for permutations of [1,2,3], 0 for [0,0,0])
             Else:
   →          Return the last element (the sum)

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


এটি 2,2 এর জন্য 24 দেয়
26:37

@ রিসার্সিভ আসলে এটি 16 দেয়, তবে আপনি ঠিক বলেছেন। এবং সম্ভবত এটি আরও দীর্ঘতর অ্যারেগুলির জন্যও ভুল ফলাফল দেয় ... জঘন্য, আমাকে একটি বিরক্তিকর সমাধানে স্যুইচ করা দরকার
লিও

0

পুশি , 12 বাইট

gF3RFx?18;S#

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

এটি ইনপুটটিকে বাছাই করে এবং এটি [1, 2, 3]সংযোজন করে 18 সংযোজন করে কাজ করে Then

         \ Implicit: Input on stack.
g        \ Sort input ascendingly
F3RF     \ On auxiliary stack, push range(3) -> [1, 2, 3]
x?       \ If the stacks are equal:
  18     \    Append 18 to the input
;
S#       \ Print sum of input.


0

পাইথন 2 , 41 39 বাইট

-1 বাইট কেয়ারড ধন্যবাদ

-1 ফ্লিপটকের উত্তর থেকে অনুপ্রেরণা দ্বারা

lambda*a:sum(a)*4**(sorted(a)==[1,2,3])

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

বিকল্প 39 বাইট সমাধান

lambda*a:sum(a)<<2*(sorted(a)==[1,2,3])


0

জেলি , 10 9 বাইট

Ṣ24S⁼?3R¤

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

-1 বাইট এরিক ধন্যবাদ

বিকল্প ( মিঃ এক্সকোডার দ্বারা ), এছাড়াও 9 বাইটের জন্য:

3R⁼Ṣ×18+S

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

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

Ṣ24S⁼?3R¤ - Main link. Argument: l (list)

Ṣ         - Sort
     ?    - Ternary if statement
    ⁼     -  Condition: Is l equal to...
      3R¤ -    [1, 2, 3]
 24       -  If condition: Return 24          
   S      -  Else: Return the sum of the list

আপনি Ṣ24S⁼?3R¤9 বাইট জন্য করতে পারেন ।
এরিক দি আউটগল্ফার

বা 3R⁼Ṣ×18+S9 বাইটের জন্যও।
মিঃ এক্সকডার

0

পাইথ , 9 বাইট

অন্যান্য পাইথ উত্তর থেকে আলাদা অ্যাপ্রোচ।

*sQ^4qS3S

ব্যাখ্যা:

আমার পাইথনের উত্তর থেকে একটি বন্দর

*sQ^4qS3SQ  # Full program (Q at the end is implicit and represents the input)

*           # A * B where A and B are the next two lines
  sQ        # Sum elements of input
  ^4        # 4 to the power of:
    qS3SQ   # Compares sorted input to [1, 2, 3] and returns 0 or 1

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


0

পাওয়ারশেল , 44 বাইট

param($a)($a-join'+'|iex)+18*!(diff(1..3)$a)

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

পাইথন এবং জাভাস্ক্রিপ্ট উত্তরের অনুরূপ অ্যালগরিদম। আক্ষরিক অ্যারে হিসাবে ইনপুট নেয় $a। তারপরে তত্ক্ষণাত $aএকসাথে যোগফল তৈরি হয় যা এর বাম-হাত অপারেটর গঠন করে +

ডান হাতটি diff(এর জন্য Compare-Object) জন্য 1,2,3এবং $a- এটি হয় সমান হলে এটি খালি অ্যারে বা সমান না হলে বিভিন্ন আইটেমের একটি খালি অरे নয় - বুলিয়ান-এ আবদ্ধ থাকে। সুতরাং, যদি তারা সমান হয় তবে এটি খালি অ্যারেটিকে (একটি মিথ্যা মান) তৈরি করে $true

যে তারপর গুন হচ্ছে দ্বারা 18যা পরোক্ষভাবে কাস্ট $trueকরার 1এবং $falseকরতে 0। সুতরাং ডান পাশের অংশটি 18যদি অ্যারেগুলি একই হয় এবং 0অন্যথায়। এটি 24যদি ইনপুট অ্যারেটি 1,2,3কোনও অনুক্রমের মধ্যে থাকে এবং সঠিকভাবে অন্য কোনওভাবে ইনপুট অ্যারের সংশ্লেষ দেয়।


0

কোটলিন , 46 44 বাইট

if(i.sorted()==listOf(1,2,3))24 else i.sum()

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

সম্পাদনাগুলি


আপনি listOf(1,2,3)2 বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন ? আমি কোটলিনকে চিনি না, তাই আমি নিশ্চিত নই।
মিঃ এক্সকডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.