যথাসম্ভব ন্যায্য থাকুন


33

ভূমিকা

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

7,129, 71,29এবং 712,9সমস্ত সম্ভাবনা, তবে 71,29এটি দুটি টুকরো টুকরো টুকরো করার সবচেয়ে সহজ উপায় কারণ এটি উভয়ের মধ্যে পার্থক্য হ্রাস করে:

7 129 -> |7-129| = 122
71 29 -> |71-29| = 42
712 9 -> |712-9| = 703

চ্যালেঞ্জ

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

বিধি

  • বিভাজক কমপক্ষে দু'জনের দৈর্ঘ্যের পূর্ণসংখ্যার জন্য অর্থবোধ করে, ইনপুটটি সর্বদা 10 ডলার হবে
  • ইনপুট হয় হয় পূর্ণসংখ্যা, অঙ্কের তালিকা বা স্ট্রিং
  • আপনাকে অবৈধ ইনপুট হ্যান্ডেল করতে হবে না

Testcases

আপনার কেবল ফলাফলের পার্থক্যটি রিপোর্ট করতে হবে, পার্টিশনটি এখানে কেবল উদাহরণের জন্য:

10 -> 1,0 -> 1
11 -> 1,1 -> 0
12 -> 1,2 -> 1
13 -> 1,3 -> 2
101 -> 1,01 -> 0
128 -> 12,8 -> 4
313 -> 3,13 -> 10
1003 -> 1,003 -> 2
7129 -> 71,29 -> 42
81128 -> 81,128 -> 47
999999 -> 999,999 -> 0
9999999 -> 999,9999 or 9999,999 -> 9000

উত্তর:


11

ব্র্যাচল্যাগ , 12 11 বাইট

আমার প্রথম ব্র্যাচল্যাগ উত্তর

স্ট্রিং হিসাবে ইনপুট নিন

{~cĊịᵐ-ȧ}ᶠ⌋

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

ব্যাখ্যা:

হবে IND মধ্যে সম্পৃক্ত জন্য সম্ভাব্য সব আউটপুট {…}এবং তাদেরকে একটি তালিকায় সংরক্ষণ করি। ~cবলে যে আউটপুট হল একটি তালিকা যা সি সিলেক্টেড থাকা অবস্থায় ইনপুট সমান হয়। পরবর্তী Ċজোর দেয় যে আউটপুট ~cদৈর্ঘ্য 2 আছে।

ịᵐফলাফলের উভয় উপাদানকে পূর্ণসংখ্যায় রূপান্তর করে (এটি নেতৃস্থানীয় 0গুলি থেকে মুক্তি পায় ), দুটি উপাদানের পরম পার্থক্য গ্রহণ করে।

আমাদের কাছে সমস্ত সম্ভাব্য আউটপুটগুলির তালিকা হয়ে গেলে আমরা ন্যূনতম উপাদানটি পাই


10

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

f n=minimum[abs$n`div`10^k-n`mod`10^k|k<-[1..n]]

[1..n] বৃহত্তর পরীক্ষার ক্ষেত্রে এটি খুব ধীর করে তোলে।

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


সুন্দর কাজ! আমি স্ট্রিংগুলি ব্যবহার করে এতটাই অন্ধ হয়ে গেলাম যে আমি ভুলে গিয়েছিলাম যে আমি পাটিগণিত ব্যবহার করতে পারি।
গম উইজার্ড

9

05 এ বি 1 ই , 9 বাইট

কোড:

ā¤âε£ÆÄ}W

05AB1E এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

ā            # Get the array [1, 2, .., len(input)]
 ¤â          # Cartesian product with the last element, (e.g. for input 12345:
               [[1, 5], [2, 5], [3, 5], [4, 5], [5, 5]])
   ε   }     # For each element:
    £        #   Get the substrings (12345 [3, 5] £ --> [123, 45])
     Æ       #   Reduce by subtraction
      Ä      #   Get the absolute value
        W    # Take the minimum of all results

1
আপনি যদি এর সাথে প্রতিস্থাপন £করেন তবে °‰আপনার ¤âআর প্রয়োজন হবে না ।
Emigna





6

প্রোলোগ (এসডাব্লুআই) , 195 189 154 117 112 বাইট

35 বাইট সংরক্ষিত হয়েছে এমিংগাকে ধন্যবাদ

A*H:-findall(X,(between(0,A,I),r(A,I,X)),L),sort(L,[H|_]),!.
r(A,B,C):-Z is 10**B,divmod(A,Z,X,Y),C is abs(X-Y).

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

প্রোলগ গল্ফিংয়ের এটি আমার প্রথম চেষ্টা তাই এটি কিছুটা ভয়াবহ হতে পারে। এটা যেভাবে কাজ করে।

আমাদের রয়েছে সর্বোচ্চ স্তরে **গ্রহণ করে Aএবং Hতা নির্ধারণ করে যে Hবিভাজনের সবচেয়ে ক্ষুদ্রতম উপায় কিনা A

    A*H:-
      findall(X,(between(0,A,I),call(r,A,I,X)),L),
      sort(L,[H|_]),
      !.

এখানে প্রথম লাইনটি এই এসও পোস্টের একটি কৌশল ব্যবহার করে , প্রয়োজনীয়ভাবে r(A)পূর্ব থেকে পূর্ণসংখ্যার উপরে প্রিপিকেটের মানচিত্র সম্পাদন 0করতে A। যেহেতু rপ্রতিটি পার্টিশনের মান নিশ্চিত করে এটি আমাদের সমস্ত সম্ভাব্য পার্টিশনের মান, এবং অতিরিক্ত জাঙ্কের পুরো বোঝা দেয়। এই সমস্ত পার্টিশন Lকোনও নির্দিষ্ট ক্রমে সংরক্ষণ করা হবে । এটি শেষ হয়ে গেলে আমরা ক্ষুদ্রতম উপাদানগুলি অনুসন্ধান করতে তালিকাকে বাছাই করি। এরপরে আমরা ব্যাকট্র্যাকিং রোধ করতে একটি কাটা ব্যবহার করি।

পরবর্তী আমরা সংজ্ঞা আছে r। প্রথম rবিভক্ত তাদের নামকরণ দুই ফলাফল গণনা Xএবং Y

r(A,B,C):-
  Z is 10**B,
  divmod(A,Z,X,Y),
  C is abs(X-Y).

তারপরে আমরা দৃsert়ভাবে বলি যে এটির Cপার্থক্য এবং ইতিবাচক।

  C is abs(X-Y).

এখানে X is div(A,10**B),Y is div(A,10**B)সর্বদা বিভ্রান্তি রয়েছে বলে মনে হয় C=0(অর্থ Hসর্বদা 0 হবে )। হওয়া উচিত Y is mod(A,10**B)আমি অনুমান করে।
Emigna

দ্বিতীয় r(A,B,C):-Z is 10**B,divmod(A,Z,X,Y),C is abs(X-Y).সারিতেও 32 বাইট সাশ্রয় হতে পারে (আপনি যদি কমপক্ষে এসডাব্লুআই প্রোগ্রাম ব্যবহার করেন তবে অন্যান্য সংস্করণ সম্পর্কে নিশ্চিত নন)।
এমিগানা

প্রথম সারি দিয়ে শুরু করতে পারেন উদাহরণস্বরূপ A*Hপরিবর্তে l(A,H)অন্য 3. আর আপনি যদি SWI ব্যবহার করছেন, আপনি একটি যোগ করতে পারিনি সংরক্ষণ Tio লিংক
Emigna

এছাড়াও, আমি মনে করি ,!না তোমার কি দরকার? সেই সময়ে কোনও ব্যাকট্র্যাকিং করা উচিত নয়।
Emigna

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


4

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

I⌊Eθ↔⁻I…θκI✂θκ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। সুবিধামত আমি এর 2-আরগ বৈকল্পিকটি ব্যবহার করতে পারি Slice। ব্যাখ্যা:

   θ            Input string
  E             Map over characters
        θ   θ   Input string
         κ   κ  Current map index
       …        Mold to length (i.e. head)
           ✂    Slice (i.e. tail)
      I   I     Cast to integer
     ⁻          Subtract
    ↔           Absolute value
 ⌊              Minimum
I               Cast to string
                Implicitly print

4

জেলি , 9 8 বাইট

ḌÐƤḊạḌƤṂ

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

-1 বাইট ডেনিসকে ধন্যবাদ। ইনপুট হ'ল সংখ্যার একটি তালিকা।

ব্যাখ্যা

ḌÐƤḊạḌƤṂ
ḌÐƤ          Convert to integer from decimal for all Ƥostfixes. [1,2,3]->[123,23,3]
   Ḋ         Remove the first element ->[23,3]
     ḌƤ      Convert to integer from decimal for all Ƥrefixes [1,2,3]->[1,12,123]
    ạ        Absolute difference. [23,3]ạ[1,12,123]->[22,9,123]
       Ṃ     Minimum

হুঁ, আপনার ব্যাখ্যাটি আপনার কোডটি আসলে কী করে তা প্রতিফলিত করে বলে মনে হচ্ছে না।
এরিক আউটগল্ফার

@ এরিকথিউটগল্ফার যখন "প্রথম উপাদানটি সরান" বলবে তখনই কি এটি "শেষ উপাদানটি মুছুন" অংশটি? আমি এটি স্থির করব, এটি
দেখানোর


3

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

\B
,$'¶$`
\d+
$*
(1*),\1

Om`^.*
\G1

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

ব্যাখ্যা

\B
,$'¶$`

এটি পৃথক লাইনে সমস্ত সম্ভাব্য পার্টিশন, পাশাপাশি মূল ইনপুট সহ একটি ট্রেলিং লাইন তৈরি করে।

\d+
$*

প্রতিটি পার্টিশনের প্রতিটি নম্বরকে অ্যানারিতে রূপান্তর করুন।

(1*),\1

1প্রতিটি পার্টিশনের উভয় অংশ থেকে সর্বাধিক এবং সমান পরিমাণ সরিয়ে ফেলুন (যেমন সর্বনিম্ন সরান, এবং এটি সর্বোচ্চ থেকে বিয়োগ করুন, যা পরম পার্থক্য দেয়)।

Om`^.*

লাইনগুলি বাছাই করুন।

\G1

1প্রথম লাইনে গুলি গণনা করুন , যা সর্বনিম্ন পরম পার্থক্য দেয়।


3

জে , 32, 27 23 বাইট

-5 বাইট ধন্যবাদ ফ্রাউনফ্রোগের জন্য! ইনপুট একটি স্ট্রিং হলে -4 বাইট।

[:<./}:@(".\)|@-1}.".\.

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

আসল: ইনপুট হিসাবে একটি সংখ্যা নেয়

(".\(}:@[([:<./|@-)}.@])".\.)@":

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

                             @": - convert the number to list of chars and
(".\                    ".\.)    - form all prefixes/suffixes and convert them to numbers
    (}:@[          }.@])         - drop the last prefix / first suffix
         (     |@-)              - find the absolute differences
          [:<./                  - find the minimum

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


টুইটারে
গ্যালেন ইভানভ

3

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

স্ট্রিং হিসাবে ইনপুট নেয়।

f=([c,...s],l=0)=>c?Math.min(Math.abs((l+=c)-s.join``),f(s,l)):l

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

মন্তব্য

f = ([c, ...s],           // c = current character, s = array of remaining characters
                l = 0) => // l = left part of the integer, initialized to 0 (see footnote)
  c ?                     // if c is defined:
    Math.min(             //   return the minimum of:
      Math.abs(           //     1) the absolute value of:
        (l += c) -        //       the updated left part
        s.join``          //       minus the right part
      ),                  //     end of Math.abs()
      f(s, l)             //     2) the result of a recursive call
    )                     //   end of Math.min()
  :                       // else:
    l                     //   stop the recursion by returning l (now equal to the input)

নন-রিকার্সিভ (ইএস 7), 65 বাইট

স্ট্রিং হিসাবে ইনপুট নেয়।

s=>Math.min(...[...s].map(c=>((l+=c)-s.slice(++i))**2,i=l=0))**.5

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

মন্তব্য

s =>                            // given s
  Math.min(...                  // get the minimum value in the result of this map():
    [...s].map(c =>             //   for each character c in s:
      ((l += c)                 //     append c to l (the left part)
                - s.slice(++i)) //     and subtract the right part from it
      ** 2,                     //     square the result
      i =                       //     start with i = 0 (split position)
      l = 0                     //     and l = 0 (left part, see footnote)
    )                           //   end of map()
  )                             // end of Math.min()
  ** .5                         // return the square root of the smallest square

দ্রষ্টব্য : উভয় সংস্করণে, lপ্রথম পুনরাবৃত্তির একটি স্ট্রিংতে জোর করা হয়। সাধারণত, আমাদের একটি সংখ্যাসূচক আক্ষরিক শূন্যের দিকে নেতৃত্ব দেওয়ার বিষয়ে সতর্কতা অবলম্বন করা উচিত: 0123 - 10 === 73কারণ 0123এটি একটি অষ্টাল মান হিসাবে পার্স করা হয়েছে (এটি এখন অবচিত, তবে এখনও কঠোর নয় মোডে বৈধ)। কিন্তু'0123' - '10' === 113 , শীর্ষস্থানীয় শূন্যটি এবার উপেক্ষা করা হবে। সুতরাং, এটি করা ভাল।

স্ট্রিংয়ে প্রয়োগ করা বিমূর্ত অপারেশনের স্পেসিফিকেশন থেকে ToNumber:

দশমিকের একটি স্ট্রিংংমেরিকালিটের কোনও সংখ্যক শীর্ষস্থানীয় 0 টি সংখ্যা থাকতে পারে


3

এপিএল (ডায়ালগ) , 27 বাইট

{⌊/|-/⍎¨↑⊂∘⍵¨↓1,∘.=⍨⍳¯1+≢⍵}

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

কিভাবে?

¯1+≢⍵- বিয়োগের দৈর্ঘ্য n1

∘.=⍨⍳ - পরিচয় ম্যাট্রিক্স

      1,∘.=⍨⍳3
1 1 0 0
1 0 1 0
1 0 0 1

1,- 1প্রতিটি সারির জন্য প্রিপেন্ড করুন

- সারি দ্বারা বিভক্ত

⊂∘⍵¨ - প্রতিটি জন্য, এটি দ্বারা স্ট্রিং বিভক্ত

      1 0 1 0  '7129'
┌──┬──┐
7129
└──┴──┘

- চ্যাপ্টা

-/ - বিয়োগফলের সাথে প্রতিটি জুড়ি হ্রাস করুন

| - পরম মান গ্রহণ

⌊/ - সর্বনিম্ন


এপিএল (ডায়ালগ) , 35 বাইট

{⌊/|-/⍎¨(⊂∘⍵⍤1)1,∘.=⍨⍳¯1+≢⍵}

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


3

জেলি , 11 বাইট

ŒṖṖLÐṂḌạ/€Ṃ

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

-৩ বাইট ধন্যবাদ ডাইলানকে

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

ŒṖṖLÐṂḌạ/€Ṃ - Main link. Argument: n (integer)    e.g    7129
ŒṖ          - Partitions of n's digits;                  [[7, 1, 2, 9], [7, 1, [2, 9]], [7, [1, 2], 9], [7, [1, 2, 9]], [[7, 1], 2, 9], [[7, 1], [2, 9]], [[7, 1, 2], 9], [7, 1, 2, 9]]
  Ṗ         - Remove the final element                   [[7, 1, 2, 9], [7, 1, [2, 9]], [7, [1, 2], 9], [7, [1, 2, 9]], [[7, 1], 2, 9], [[7, 1], [2, 9]], [[7, 1, 2], 9]]
    ÐṂ      - Keep the lists with the minimum...         [[7, [1, 2, 9]], [[7, 1], [2, 9]], [[7, 1, 2], 9]]
   L        -   length
      Ḍ     - From digits                                [[7, 129], [71, 29], [712, 9]]
        /   - Reduce...
         €  - ...each...
       ạ    - ...by absolute difference                  [122, 42, 703]
          Ṃ - Take the minimum                           42

আপনি এই ক্ষেত্রে পরিবর্তন L=2$$Ðfকরতে পারেনṖLÐṂ
dylnan



1

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

"GX@:&)UwU-|vX<

ইনপুট হল একটি স্ট্রিং যা পূর্ণসংখ্যাকে উপস্থাপন করে।

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

ব্যাখ্যা

"         % Implicit input. Do the following as many times as input length
  G       %   Push input
  X@      %   Push iteration index (1-based), k
  :       %   Range: gives [1 2 ... k]
  &)      %   Two-ouput reference indexing: gives a substring with the first
          %   k characters in the input and then a substring with the rest
  U       %   Convert to number
  wU      %   Swap, convert to number
  -|      %   Absolute difference
  v       %   Vertically concatenate stack. This concatenates the obtained
          %   absolute difference with the minimum so far; does nothing in 
          %   the first iteration
  X<      %   Minimum of array
          % Implicit end. Implicit display


1

পরিষ্কার , 106 83 বাইট

import StdEnv
@n#f=toInt o(%)n
=hd(sort[abs(f(0,i)-f(i+1,size n))\\i<-[0..size n]])

@একটি স্ট্রিং গ্রহণ করে ফাংশনটি সংজ্ঞায়িত করে ।

বেশিরভাগ স্ব-স্পষ্টভাবে, একমাত্র কৌতুকপূর্ণ বিট f=toInt o(%)n: এটি toIntফাংশনগুলির শ্রেণি নেয় এবং এটি o( %) ইতিমধ্যে প্রথম যুক্তি ( n) দিয়ে সরবরাহিত তরকারী স্লাইস অপারেটর শ্রেণি ( ) দ্বারা রচনা করে । যেহেতু কেবলমাত্র এক প্রকার ( Stringসমতুল্য {#Char}) যা উভয়ের জন্যই ওভারলোড রয়েছে %এবং toIntলাইনটি আসলে সংকলন করে, সাধারণত সাধারণত সংকলককে প্রাসঙ্গিক তথ্যের অভাবে গল্ফ দেওয়ার সময় ফাংশন রচনা করা শক্ত হয়।

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


1

জেলি , 12 বাইট

JṬ€œṗ€⁸Ḍạ/€Ṃ

একটি মোনাডিক লিঙ্ক অঙ্কের তালিকা নিয়ে এবং পূর্ণসংখ্যা ফেরত দেয়।

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

কিভাবে?

JṬ€œṗ€⁸Ḍạ/€Ṃ - Link: list of digits     e.g. [7,1,2,9]
J            - range of length               [1,2,3,4]
 Ṭ€          - untruth €ach                  [[1],[0,1],[0,0,1],[0,0,0,1]]
      ⁸      - chain's left argument         [7,1,2,9]
   œṗ€       - partition at truthy for €ach  [[[],[7,1,2,9]],[7,[1,2,9]],[[7,1],[2,9]],[[7,1,2],9]]
       Ḍ     - undecimal (vectorises)        [[0,7129],[7,129],[71,29],[712,9]]
         /€  - reduce €ach by:
        ạ    - absolute difference           [7129,122,42,703]
           Ṃ - minimum                       42

1

পাইথ, 10 বাইট

hSaMv<./Ql

পরীক্ষা স্যুট

স্ট্রিং হিসাবে ইনপুট নেয়।

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

hSaMv<./Ql
hSaMv<./QlQ    Implicit variable
      ./Q      Form all partitions of the input string.
               Split it in all possible ways, maintaining the order.
               Partitions are ordered from shortest to longest.
     <   lQ    Take the prefix as long as the input string.
               This keeps just the splits into one and two pieces.
    v          Evaluate. All strings are converted to numbers.
  aM           Map the absolute difference function.
hS             Minimum

নোট করুন যে বিভাজনের তালিকাটি 1 টি টুকরোতে বিভক্ত করতে দেয় তবে এর মান সর্বদা সর্বনিম্নের চেয়ে বড় হবে, তাই এটি নিরাপদে উপেক্ষা করা হবে।


1

Tcl , 116 বাইট

foreach d [split [set b [set R $argv]] {}] {append L $d
regexp .(.+) $R - R
set b [expr min($b,abs($L-$R))]}
puts $b

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

ব্যাখ্যা

b ← R ← input number
for each digit (d) in the input number:
  L += d
  strip first digit off of R using a regular expression
  b ← min( b, distance between L and R )
print b

এটি একটি ডিজেনারেট ফাইনাল কেসকে সর্বদা ন্যূনতম পার্থক্যের চেয়ে বেশি গণনা করতে দেয় এমন রিজেক্স ট্রিক ব্যবহার করে কাজ করে। "12345" এর জন্য মানগুলি হ'ল:

1 2345 → 2344
12 345 → 333
123 45 → 78
1234 5 → 1229
12345 5 → 12340 (degenerate case)

এর lmapপরিবর্তে আপনি বাইটগুলি শেভ করতে পারেন foreach: tio.run/##LYuxCsMgFEV3v@IOb1DaZO8/ZHItDlolBEx4qC2FkG9/…
সার্জিওল


1

এপিএল + উইন, 31 বাইট

⌊/|(⍎¨m↓¨⊂n)-⍎¨(m←⍳¯1+⍴n)↑¨⊂n←⎕

একটি স্ট্রিং হিসাবে পূর্ণসংখ্যার স্ক্রিন ইনপুট জন্য অনুরোধ জানানো হয়।

ব্যাখ্যা:

m←⍳¯1+⍴n Create a list of numbers from 1 to length of string - 1

↑¨⊂n←⎕ Using m create a nested vector taking successively characters from the front of the string defined by m

⍎¨ Convert from character to integer

(⍎¨m↓¨⊂n) Using m create a nested vector dropping successively characters from the front of the string defined by m 

⌊/| take the minimum absolute value after subtracting the two vectors of integers

আমি এপিএলকে চিনি না, এটি পরীক্ষা করার কোনও উপায় আছে কি?
ბიმო

দুর্ভাগ্যক্রমে APL + WIN টিআইও তে নেই। আপনি যদি এপিএলের সাথে খেলতে চান তবে ডায়ালগ ওয়েবসাইট থেকে এপিএলএক্সের একটি অনুলিপি বিনামূল্যে ডাউনলোড করতে পারেন এবং আমার কোড এটিতে কাজ করে। এটি ডায়ালগের ট্রাই এপিএল অন-লাইনে কাজ করে না। dyalog.com/aplx.htm
গ্রাহাম


1

সি # (.নেট কোর) , 112 107 + 18 = 125 বাইট

n=>Enumerable.Range(1,n.Length-1).Min(i=>System.Math.Abs(int.Parse(n.Remove(i))-int.Parse(n.Substring(i))))

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

গণনাটিতে 18 বাইট অন্তর্ভুক্ত রয়েছে using System.Linq;। এ হিসাবে ইনপুট নেয় string

  • সাইয়াস জার্ডের দ্বারা সংরক্ষিত 5 বাইট!

string.Removeআপনাকে কয়েকটি বাইট বাঁচাতে পারে
কাইয়াস জার্ড

1

কমন লিস্প, 131 বাইট

আমার প্রথমবারের মতো কোড গল্ফে অংশ নেওয়া এবং আমি লিস্প ব্যবহার করার সিদ্ধান্ত নিয়েছিলাম, যেহেতু আমি এটি পছন্দ করি।

এখানে আমার সমাধান:

(defun f (s) (loop for i from 1 below (length s) minimizing (abs (- (parse-integer (subseq s 0 i)) (parse-integer (subseq s i))))))

ইনপুটটির একটি স্ট্রিং হওয়া দরকার, পূর্ণসংখ্যা বা তালিকা নয়।


3
পিপিসিজিতে আপনাকে স্বাগতম! দুর্ভাগ্যক্রমে আমি লিস্পকে চিনি না, তবে আমি লক্ষ্য করেছি যে আপনি এটি 11 বাইট দ্বারা সংক্ষিপ্ত করতে পারেন যদি আপনি এটিকে একটি নামহীন ফাংশন তৈরি করেন এবং কিছু সাদা স্থান সরিয়ে ফেলেন তবে এখানে দেখুন । যদি আপনি এটি না দেখে থাকেন তবে সম্ভবত আপনি কিছু টিপস পেয়ে যাবেন।
ბიმო
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.