বিকল্প সাইন ক্রম


16

ভূমিকা

সাইন একটি সংখ্যা হয় একটি হল +, অথবা একটি -যে নন-জিরো পূর্ণসংখ্যা জন্য। শূন্য নিজেই স্বাক্ষরহীন ( +0একইরকম -0)। নিম্নলিখিত ক্রমিকায় আমরা ইতিবাচক চিহ্ন , শূন্য এবং নেতিবাচক চিহ্নের মধ্যে বিকল্প হতে চলেছি । ক্রমটি শুরু হয় 1, সুতরাং আমরা 1শূন্য দিয়ে একটি ধনাত্মক চিহ্ন দিয়ে লিখি (এটি একটি অদ্ভুত, তবে আমরা কেবল সংখ্যাটি 0 দ্বারা গুণ করব) এবং নেতিবাচক চিহ্নটি:

1, 0, -1

পরের নম্বরটি 2, এবং আমরা আবার একই জিনিসটি করি:

2, 0, -2

ক্রমটি শেষ পর্যন্ত:

1, 0, -1, 2, 0, -2, 3, 0, -3, 4, 0, -4, 5, 0, -5, 6, 0, -6, 7, 0, -7, ...

বা আরও পঠনযোগ্য ফর্ম:

a(0) = 1
a(1) = 0
a(2) = -1
a(3) = 2
a(4) = 0
a(5) = -2
a(6) = 3
a(7) = 0
a(8) = -3
a(9) = 4
...

কাজটি

একটি অ-নেতিবাচক পূর্ণসংখ্যা n দেওয়া হয়েছে , উপরের অনুক্রমের n পদটি আউটপুট করুন । আপনি যদি শূন্য-সূচকযুক্ত বা এক-সূচক সংস্করণ ব্যবহার করেন তবে আপনি চয়ন করতে পারেন ।

পরীক্ষার কেস:

শূন্য-ইন্ডেক্স:

a(0) = 1
a(11) = -4
a(76) = 0
a(134) = -45
a(296) = -99

বা যদি আপনি এক-সূচক পছন্দ করেন:

a(1) = 1
a(12) = -4
a(77) = 0
a(135) = -45
a(297) = -99

এটি , তাই সংক্ষিপ্ত সংখ্যক বাইটের সাথে জমাটি জয়!


আপনি যদি এটি শুরু করেন ঠিক আছে[0, 0, 0, -1, 0, 1...
ব্লু

@ মুডিফিশ কোন দুঃখিত, এটি দিয়েই শুরু করতে হবে 1
আদনান

উত্তর:



6

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

n=>-~(n/3)*(1-n%3)

@ LeakyNun এর উত্তরের সাথে খুব মিল মিলেছে তবে আমি আমার পোস্ট করার পরেও তার দেখা পেলাম না।

ব্যাখ্যা এবং অবহিত

-~শর্টহ্যান্ড হ'ল Math.ceilবা গোলাকার:

n =>               // input in var `n`
    Math.ceil(n/3) // Get every 3rd number 1,1,1,2,2,2, etc.
    *
    (1-n%3)        // 1, 0, -1, 1, 0, -1, ...


1
(আমি এর দ্বারা প্রমাণী হয়েছি যে তিনি তার সমাধান পোস্ট করার আগে তিনি আমার সমাধানটি দেখেন নি)
লিকি নুন

Math.ceilএবং -~পৃথক; Math.ceil(1) == 1যেখানে-~1 == 2
সাইওস

1
1 বাইট সংক্ষিপ্ত:n=>~(n/3)*~-(n%3)
সাইয়েস

6

মারিওল্যাং, 93 81 বাইট

এক-ইন্ডেক্স

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

;(-))+(-
"============<
>:(![<:![<:)![
 !=#="!#="!=#=
!  < !-< !- <
#==" #=" #=="

ব্যাখ্যা:

আমরা অভিপ্রায় গ্রহণ দ্বারা শুরু

;

আমাদের দিতে

          v
... 0 0 input 0 0 ...

তারপরে আমরা বাম বাইট হ্রাস করি এবং এর সাথে ডান বাইট বৃদ্ধি করি

;(-))+(
=======

আমরা শেষ পর্যন্ত

           v
... 0 -1 input +1 0 ...

আমরা তারপর লুপ সেট আপ

;(-))+(-
"============<
>  ![< ![<  ![
   #=" #="  #=
!  < !-< !- <
#==" #=" #=="

স্মৃতি দেখতে যতক্ষণ না অবধি লুপ চলে যাবে

         v 
... 0 -X 0 +X 0 ...

আমাদের কেবল তখন ফলাফলটি আউটপুট করা দরকার

;(-))+(-
"============<
>:(![<:![<:)![
 !=#="!#="!=#=
!  < !-< !- <
#==" #=" #=="

2
নিস! আপনি মারিও ল্যাং পছন্দ করেন।
Rɪᴋᴇʀ

@ ইস্টারলিআইর্ক এই অনুভূতিটি মারিও ল্যাং থেকে ইথারফ্রাগের মধ্যে পারস্পরিক বলে মনে হচ্ছে না, যদিও: ;(এবং >:(। যদিও, দুটি সময় [<:কিছুটা খুশি হিসাবে বিবেচনা করা যেতে পারে। ; পি
কেভিন ক্রুইজসেন

4

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

lambda n:(n/3+1)*(1-n%3)

সম্পূর্ণ প্রোগ্রাম:

a=lambda n:(n/3+1)*(1-n%3)

print(a(0))   #   1
print(a(11))  #  -4
print(a(76))  #   0
print(a(134)) # -45
print(a(296)) # -99

4

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

3/XkG3X\2-*_

এটিতে একটি ভিত্তিক সূচক ব্যবহার করা হয়।

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

ব্যাখ্যা:

    G          #Input
     3X\       #Modulus, except multiples of 3 give 3 instead of 0
        2-     #Subtract 2, giving -1, 0 or 1
3/Xk           #Ceiling of input divided by 3.
          *    #Multiply 
           _   #Negate

বেশিরভাগ ইস্যুগুলির যত্ন নেওয়ার মতো Q3/Xk-1:1G_)*আরও ভাল কিছু কাজ করতে পারে। এর পরিবর্তে সম্ভবত 1-ভিত্তিক সূচিকাগুলির পরিবর্তে এটি আরও কখনও সংশোধন করা যায়।
স্যুভার

4

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

f x=div(x+3)3*(1-mod(x+3)3)

সামান্য আরও আকর্ষণীয় 28 বাইট সমাধান:

(((\i->[i,0,-i])=<<[1..])!!)

(উভয়ই 0মূল্যহীন)


3

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

:t~y_vG)

ফলাফল 1-ভিত্তিক।

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

ব্যাখ্যা

এটি 2D অ্যারে তৈরি করে

 1  2  3  4  5 ...
 0  0  0  0  0 ...
-1 -2 -3 -4 -5 ...

এবং তারপরে পছন্দসই শব্দটি বের করতে লিনিয়ার সূচক ব্যবহার করে। লিনিয়ার ইন্ডেক্স উপায়ে সূচক নিচে, তারপর জুড়ে (তাই উপরে অ্যারের মধ্যে রৈখিক অনুক্রমে প্রথম এন্ট্রি 1, 0, -1, 2, 0, ...)

:     % Vector [1 2 ... N], where N is implicit input
t~    % Duplicate and logical negate: vector of zeros
y_    % Duplicate array below the top and negate: vector [-1 -2 ... -N]
v     % Concatenate all stack contents vertically
G)    % Index with input. Implicit display

3

পার্ল 5, 22 বাইট

21 এর জন্য এক -p:

$_=(-$_,$_+2)[$_%3]/3

1-ভিত্তিক সূচক ব্যবহার করে।

ব্যাখ্যা:

-p$_ইনপুট সমান ভেরিয়েবল সেট করে । তারপরে কোডটি $_%30-ভিত্তিক তালিকার 3 দ্বারা বিভক্ত হয়ে তম মৌলের সমানভাবে সেট করে(-$_,$_+2) (যেখানে %মডিউল রয়েছে) । মনে রাখবেন যে যদি $_%3দুটি হয় তবে এর পরে তেমন কোনও উপাদান নেই, এবং পরবর্তী বিভাজন 3 দ্বারা অপরিজ্ঞাতকে 0 হিসাবে চিহ্নিত করে -pমুদ্রণ করে $_



2

পার্ল 6 ,  26  23 বাইট

{({|(++$,0,--$)}...*)[$_]}
{($_ div 3+1)*(1-$_%3)}

(সংক্ষিপ্ত একটি অন্য উত্তর থেকে অনুবাদ করা হয়েছিল)

ব্যাখ্যা (প্রথমটির):

{ # bare block with implicit parameter 「$_」
  (

    # start of sequence generator

    { # bare block
      |(  # slip ( so that it flattens into the outer sequence )
        ++$, # incrementing anon state var =>  1, 2, 3, 4, 5, 6
        0,   # 0                           =>  0, 0, 0, 0, 0, 0
        --$  # decrementing anon state var => -1,-2,-3,-4,-5,-6
      )
    }
    ...  # repeat
    *    # indefinitely

    # end of sequence generator

  )[ $_ ] # get the nth one (zero based)
}

টেস্ট:

#! /usr/bin/env perl6
use v6.c;
use Test;

# store it lexically
my &alt-seq-sign = {({|(++$,0,--$)}...*)[$_]}
my &short-one = {($_ div 3+1)*(1-$_%3)}

my @tests = (
    0 =>   1,
   11 =>  -4,
   76 =>   0,
  134 => -45,
  296 => -99,
  15..^30  => (6,0,-6,7,0,-7,8,0,-8,9,0,-9,10,0,-10)
);

plan @tests * 2 - 1;

for @tests {
  is alt-seq-sign( .key ), .value, 'alt-seq-sign  ' ~ .gist;

  next if .key ~~ Range; # doesn't support Range as an input
  is short-one(    .key ), .value, 'short-one     ' ~ .gist;
}
1..11
ok 1 - alt-seq-sign  0 => 1
ok 2 - short-one     0 => 1
ok 3 - alt-seq-sign  11 => -4
ok 4 - short-one     11 => -4
ok 5 - alt-seq-sign  76 => 0
ok 6 - short-one     76 => 0
ok 7 - alt-seq-sign  134 => -45
ok 8 - short-one     134 => -45
ok 9 - alt-seq-sign  296 => -99
ok 10 - short-one     296 => -99
ok 11 - alt-seq-sign  15..^30 => (6 0 -6 7 0 -7 8 0 -8 9 0 -9 10 0 -10)

2

জে, 19 15 বাইট

>.@(%&3)*1-3|<:

সম্ভবত এটি আরও গল্ফ করা প্রয়োজন ...

1-ইন্ডেক্স।

Ungolfed:

>> choose_sign      =: 1-3|<:      NB. 1-((n-1)%3)
>> choose_magnitude =: >.@(%&3)    NB. ceil(n/3)
>> f                =: choose_sign * choose_magnitude
>> f 1 12 77
<< 1 _4 0

যেখানে >>ইনপুট (STDIN) এবং এর <<অর্থ আউটপুট (STDOUT)।


2

পাইক, 8 7 বাইট (পুরানো সংস্করণ)

3.DeRt*

এখানে চেষ্টা করুন! - নোট করুন যে লিঙ্কটি সম্ভবত দীর্ঘকাল স্থায়ী হবে না

3.D      - a,b = divmod(input, 3)
   e     - a = ~a -(a+1)
     t   - b -= 1
      *  - a = a*b
         - implicit output a

সবচেয়ে নতুন সংস্করণ

3.DhRt*_

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

3.D      - a,b = divmod(input, 3)
   h     - a+=1
     t   - b-=1
      *  - a = a*b
       _ - a = -a
         - implicit output a

আপনি (পুরানো সংস্করণ)
ডাউনগোটের

পুরানো কোড এখানে কাজ করে সর্বশেষ প্রতিশ্রুতি (এটি আজকের আগে)
ব্লু

2

জে, 27 বাইট

গল্ফিয়াস্ট না হলেও, আমি এটি আরও ভাল পছন্দ করি কারণ এটি একটি এজেন্ডা ব্যবহার করে।

>.@(>:%3:)*1:`0:`_1:@.(3|])

এখানে গাছের পচে যাওয়া:

         ┌─ >.      
  ┌─ @ ──┤    ┌─ >: 
  │      └────┼─ %  
  │           └─ 3: 
  ├─ *              
──┤           ┌─ 1: 
  │      ┌────┼─ 0: 
  │      │    └─ _1:
  └─ @. ─┤          
         │    ┌─ 3  
         └────┼─ |  
              └─ ]  

এটি কেনির জে জবাবের সাথে খুব মিল, কারণ এটি প্রস্থ এবং সাইনটি পছন্দ করে, তবে এটি আলাদা যে আমি সাইনটি বেছে নেওয়ার জন্য কোনও এজেন্ডা ব্যবহার করি।


2

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

_3&\wq*_

এই সমাধানটি ক্রমটিতে 1-ভিত্তিক সূচক ব্যবহার করে।

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

সমস্ত পরীক্ষার কেসগুলি দেখায় পরিবর্তিত সংস্করণ

ব্যাখ্যা

        % Implicitly grab the input
_       % Negate the input
3&\     % Compute the modulus with 3. The second output is floor(N/3). Because we negated
        % the input, this is the equivalent of ceil(input/3)
w       % Flip the order of the outputs
q       % Subtract 1 from the result of mod to turn [0 1 2] into [-1 0 1]
*       % Take the product with ceil(input/3)
_       % Negate the result so that the sequence goes [N 0 -N] instead of [-N 0 N]
        % Implicitly display the result

2

পাইথ, 10 বাইট

*h/Q3-1%Q3

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

ব্যাখ্যা:

*     : Multiply following two arguments
h/Q3  : 1 + Input/3
-1%Q3 : 1 - Input%3

দ্রষ্টব্য: আমি শূন্য-সূচিকৃত অনুক্রমটি ধরে নিয়েছি।


1
আপনি সম্ভবত এই লিঙ্কটি অন্তর্ভুক্ত করতে চাই। এছাড়াও, পিপিসিজিতে আপনাকে স্বাগতম!
লিকি নুন

আমি আপনার সমাধানটির খুব কাছে *@(1ZtZ)%Q3h/Q3
এসেছি

@ ফ্লাইএফ (1ZtZ)=-L1 2
লিকি নুন


2

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

কোড:

(3‰`<*(

ব্যাখ্যা:

(           # negate input: 12 -> -12
 3‰         # divmod by 3: [-4, 0]
   `        # flatten array: 0, -4
    <       # decrease the mod-result by 1: -1, -4
     *      # multiply: 4
      (     # negate -4

2

জিওজেব্রা, 44 বাইট

Element[Flatten[Sequence[{t,0,-t},t,1,n]],n]

যেখানে nএক সূচকযুক্ত।

ব্যাখ্যা:

Element[                      , n] # Return the nth element of the list                  .
 Flatten[                    ]     # Strip all the unnecessary braces from the list     /|\
  Sequence[{t,0,-t}, t, 1, n]      # Generate a list of lists of the form {t, 0, -t}     |
                             # This list will start with {1,0,-1} and end with {n,0,-n}  |

এর মাধ্যমে সমস্ত ট্রিপল্ট উত্পন্ন করার প্রয়োজন হয় না {n, 0, -n}, তবে এটি লেখার চেয়ে কম ceil(n/3)বা সেই প্রভাবের চেয়ে ছোট । দ্রষ্টব্য যে nএই অবজেক্টটি তৈরি করতে অবশ্যই সংজ্ঞায়িত করা উচিত (এটি চলমান সময়ে এটি সংজ্ঞায়িত না করা হলে জিওজেব্রা আপনাকে স্লাইডার তৈরি করতে অনুরোধ করবে n)।


হাই এবং পিপিসি তে আপনাকে স্বাগতম! আপনার কাছে কি এই লিঙ্কটি পরীক্ষা করতে পারি এমন একটি লিঙ্ক রয়েছে (পছন্দসই অনলাইন)?
আর

@ EᴀsᴛᴇʀʟʏIʀᴋ, ধন্যবাদ! এখানে একটি ব্যাপার লিংক একটি অনলাইন অ্যাপলেট thingamabob করতে। পৃষ্ঠাটি কিছুক্ষণের জন্য ফাঁকা লাগছিল, তবে এটি প্রদর্শিত হয়েছিল।
জো

ওহ ঠান্ডা. তবে আমি সূত্রটি কোথায় রাখব? > _> আমি এটিকে ফাঁকাতে আটকানোর চেষ্টা করেছি এবং এটি একটি স্লাইডার তৈরি করার অনুরোধ জানিয়েছিল, তবে আর কিছুই ঘটেনি।
আর

@ EᴀsᴛᴇʀʟʏIʀᴋ: বাম দিকে, যেখানে এটি "ইনপুট ..." বলেছে প্রথমে, আরম্ভ করার nজন্য এমন কিছু লিখুন n=297(এটি আপনাকে একটি স্লাইডার দেবে যা সুন্দরভাবে কনফিগার করা হয়েছে)। তারপরে সূত্রটি ইনপুট বাক্সে আটকান, যা এখন নীচের নীচে হওয়া উচিত n। (প্রত্যাবর্তনকে আঘাত করার বিষয়টি নিশ্চিত করুন;) সূত্রটি nক্রমের দশম মেয়াদে মূল্যায়ন করা উচিত এবং আপনি স্লাইডারটি সরানোর সময় পরিবর্তন হওয়া উচিত।
জো

2

ল্যাবরেথ , 17 15 14 বাইট

1-(n%3)পরিবর্তে ব্যবহারের ক্ষেত্রে সকের ধারণা ব্যবহার করে 3 বাইট সংরক্ষণ করা হয়েছে ~(n%3-2)

1?:#/)}_3%-{*!

প্রোগ্রামটি একটি ত্রুটি (শূন্য দ্বারা বিভাগ) দিয়ে সমাপ্ত হয়, তবে ত্রুটি বার্তাটি STDERR এ যায়।

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

ব্যাখ্যা

প্রোগ্রামটি সম্পূর্ণ রৈখিক, যদিও কিছু কোড শেষে বিপরীতভাবে কার্যকর করা হয়।

1     Turn top of stack into 1.
?:    Read input as integer and duplicate.
#     Push stack depth (3).
/)    Divide and increment.
}     Move over to auxiliary stack.
_3%   Take other copy modulo 3.
-     Subtract from 1. This turns 0, 1, 2 into 1, 0, -1, respectively.
{*    Move other value back onto main stack and multiply.
!     Output as integer.

নির্দেশিকা নির্দেশক এখন একটি শেষ প্রান্তে আঘাত করে এবং ঘুরিয়ে দেয়, তাই এটি শেষ থেকে কোডটি কার্যকর করতে শুরু করে:

*     Multiply two (implicit) zeros.
{     Pull an (implicit) zero from the auxiliary to the main stack.
-     Subtract two (implicit) zeros from one another.
      Note that these were all effectively no-ops due to the stacks which are
      implicitly filled with zeros.
%     Attempt modulo, which terminates the program due to a division-by-zero error.

2

এরলং, 40 বাইট

F=fun(N)->trunc((N/3+1)*(1-N rem 3))end.

দুঃখজনকভাবে এরলংয়ের কোনও '%' মডুলো অপারেটর নেই এবং 'রিম'-এর স্পেসগুলির প্রয়োজন, এমনকি 3 এর আগেও।


2

হেক্সাগনি , 25 বাইট

?'+}@/)${':/3$~{3'.%(/'*!

অথবা, অ-মিনিফিড বিন্যাসে:

    ? ' + }
   @ / ) $ {
  ' : / 3 $ ~
 { 3 ' . % ( /
  ' * ! . . .
   . . . . .
    . . . .

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

হেক্সাগোনিতে আমার প্রথম প্রচারণা, তাই আমি নিশ্চিত যে আমি এটি কোথাও দক্ষতার সাথে সম্পন্ন করতে পারিনি এতটা দক্ষতার সাথে ...

একটি সংলগ্ন একটিতে একটি -(n%3 - 1)মেমরি প্রান্তে গণনা করে n/3 + 1, তারপর তাদের একসাথে গুণ করে।


বাহ, এটি দেখতে খুব আকর্ষণীয়! :)
আদনান

2

আর, 28 বাইট

-((n=scan())%%3-1)*(n%/%3+1)

দেখে মনে হচ্ছে এটি এখানে বেশিরভাগ উত্তরের বৈচিত্র। জিরো ভিত্তিক

   n=scan()                  # get input from STDIN
  (        )%%3-1            # mod by 3 and shift down (0,1,2) -> (-1,0,1)
-(               )           # negate result (1,0,-1), this handles the alternating signs
                  *(n%/%3+1) # integer division of n by 3, add 1, multiply by previous

এটি সম্পর্কে দুর্দান্ত জিনিসটি হ'ল এটি একাধিক ইনপুট পরিচালনা করে

> -((n=scan())%%3-1)*(n%/%3+1)
1: 0 3 6 9 1 4 7 10 2 5 8 11
13: 
Read 12 items
 [1]  1  2  3  4  0  0  0  0 -1 -2 -3 -4
> 

মূলত আমি নিম্নলিখিতগুলি করতে চেয়েছিলাম, তবে অতিরিক্ত বাইটগুলি ছাঁটাই করতে পারিনি।

rbind(I<-1:(n=scan()),0,-I)[n]

rbind1 এর ব্যাপ্তিতে 0 এবং নেতিবাচক যুক্ত করতে ব্যবহার করে nতারপরে n'ম' শব্দটি (এক ভিত্তি করে) ফেরত দিন ।

# for n = 5
rbind(                    )    # bind rows 
            n=scan()           # get input from STDIN and assign to n
      I<-1:(        )          # build range 1 to n and assign to I
                     ,0        # add a row of zeros (expanded automatically)
                       ,-I     # add a row of negatives
                           [n] # return the n'th term

2

ব্যাচ (উইন্ডোজ), 86 বাইট

Alternate.bat

SET /A r=%1%%3
SET /A d=(%1-r)/3+1
IF %r%==0 ECHO %d%
IF %r%==1 ECHO 0
IF %r%==2 ECHO -%d%

এই প্রোগ্রামটি যেমন চালানো হয় Alternate.bat nযেখানে nসংখ্যা আপনার উপর ফাংশন কল করতে ইচ্ছুক নয়।


2

এপিএল, 12 টি অক্ষর

-×/1-0 3⊤6+⎕

0 3⊤এপিএল এর divmod 3


2

জাভা 7, 38 37 36 বাইট

আমার প্রথম গল্ফ, নম্র হতে

int a(int i){return(1+i/3)*(1-i%3);}

এখানে চেষ্টা করুন! (পরীক্ষার কেস অন্তর্ভুক্ত)

সম্পাদনা: আমি ভুল করেছিলাম, এবং প্রতিস্থাপন করে আরও একটি চরিত্র গল্ফ (-i%3+1)করেছি (1-i%3)


1
হ্যালো, এবং পিপিসিজিতে আপনাকে স্বাগতম! আপনি পরে স্থানটি সরাতে পারেন returnএবং একটি জাভা 8 ল্যাম্বদা ব্যবহার করতে পারেন ।
NoOneIsHere

আমার উল্লেখ করা উচিত যে এটি জাভা 7. ছিল I'll আমি সেই স্থানটি সরিয়ে ফেলব, যদিও। ধন্যবাদ!
স্টিভেন এইচ।

1

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

.+
11$&$*
(111)+(1)*
$#2$#1
T`d`+0-`^.
^0.+
0

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

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

বেস-টেনে ইনপুট / আউটপুট নেয়। 1-ইন্ডেক্স।

অ্যানারি ইনপুট, বেস-টেন আউটপুট, 1-ইনডেক্সড: 40 বাইট

$
11
(111)+(1)*
$#2$#1
T`d`+0-`^.
^0.+
0

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

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


1

ম্যাটল্যাব / অষ্টাভে, 27 বাইট

@(n)ceil(n/3)*(mod(-n,3)-1)

এটি একটি বেনামে ফাংশন তৈরি করে যা ব্যবহার করে বলা যেতে পারে ans(n) । এই সমাধানটি 1-ভিত্তিক সূচক ব্যবহার করে।

সমস্ত পরীক্ষার কেস


1

গণিত 26 বাইট

4 টি বাইট সংরক্ষণের সাথে মার্টিন ইন্ডারকে ধন্যবাদ জানায়।

⎡#/3⎤(-#~Mod~3-1)&

স্যুভারের মতো একই পন্থা ব্যবহার করে।


1

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

কোনও মোড কনস ছাড়া ...

@(n)(-[-1:1]'*[1:n])(n)

1-ভিত্তিক সূচক জাদু ব্যবহার করে।


ব্যাখ্যা

একটি বেনামী ফাংশন তৈরি করে যা করবে:

(-[-1:1]'*[1:n])(n)
  [-1:1]              % make a row vector [-1 0 1]
 -      '             % negate and take its transpose making a column vector
          [1:n]       % make a row vector [1..n], where n is the input
         *            % multiply with singleton expansion
               (n)    % use linear indexing to get the nth value

গুণনের পদক্ষেপের পরে আমাদের মতো একটি 3xn ম্যাট্রিক্স হবে (এন = 12 এর জন্য):

 1    2    3    4    5    6    7    8    9   10   11   12
 0    0    0    0    0    0    0    0    0    0    0    0
-1   -2   -3   -4   -5   -6   -7   -8   -9  -10  -11  -12

মেকিং nকলাম Overkill, কিন্তু এটা একটি সুবিধাজনক সংখ্যা বৃহৎ যথেষ্ট হতে নিশ্চিত করা হয়। লিনিয়ার ইনডেক্সিং প্রতিটি কলামকে বাম থেকে ডানে গণনা করে, তাই লিনিয়ার সূচকের উপাদানটি 4হবে 2

আইডোনে সমস্ত পরীক্ষার কেস ।


1

ডিসি, 10

?2+3~1r-*p

1-ভিত্তিক সূচক ব্যবহার করে।

?              # Push input to stack
 2+            # Add 2
   3~          # divmod by 3
     1r-       # subtract remainder from 1
        *      # multiply by quotient
         p     # print
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.