পাটিগণিত চক্র


13

ইনপুট:

পূর্ণসংখ্যা nযা >=0বা >=1( f(0)isচ্ছিক)

আউটপুট:

nকরি' ক্রম, অথবা ক্রম আপ এবং সহ তম সংখ্যা nতম সংখ্যা '।

ক্রম:

(0),1,-1,-3,0,5,-1,-7,0,9,-1,-11,0,13,-1,-15,0,17,-1,-19,0,21,-1,-23,0,25,-1,-27,0,29,-1,-31,0,33,-1,-35,0,37,-1,-39,0,41,-1,-43,0,45,-1,-47,0,49,-1,-51,0,53,-1,-55,0,57,-1,-59,0,61,-1,-63,0,65,-1,-67,0,69,-1,-71,0,73,-1,-75,0,77,-1,-79,0,81,-1,-83,0,85,-1,-87,0,89,-1,-91,0,93,-1,-95,0,97,-1,-99

এই সিকোয়েন্সটি কীভাবে তৈরি হয়?

f(n=0) = 0(alচ্ছিক)
f(n=1) = f(0) + nবা f(n=1) = 1
f(n=2) = f(1) - n
f(n=3) = f(2) * n
f(n=4) = f(3) / n
f(n=5) = f(4) + n
ইত্যাদি

বা সিউডো কোডে:

function f(integer n){
  Integer result = 0
  Integer i = 1
  Loop as long as i is smaller than or equal to n
  {
    if i modulo-4 is 1:
      result = result plus i
    if i modulo-4 is 2 instead:
      result = result minus i
    if i modulo-4 is 3 instead:
      result = result multiplied with i
    if i modulo-4 is 0 instead:
      result = result integer/floor-divided with i
    i = i plus 1
  }
  return result
}

তবে আপনি যেমন লক্ষ করেছেন যে অনুক্রমের দুটি নিদর্শন রয়েছে:

0, ,-1,  ,0, ,-1,  ,0, ,-1,   ,0,  ,-1,   ,0,  ,-1,   ,...
 ,1,  ,-3, ,5,  ,-7, ,9,  ,-11, ,13,  ,-15, ,17,  ,-19,...

সুতরাং একই ক্রমের ফলাফল হিসাবে অন্য যে কোনও পদ্ধতি অবশ্যই সম্পূর্ণ জরিমানা।

চ্যালেঞ্জ নিয়ম:

  • 0-ইনডেক্সড এবং 1-ইনডেক্সড ইনপুটগুলির একই ফলাফলের ফলাফল হবে (এজন্য f(0)যদি আপনি এটি অন্তর্ভুক্ত করতে চান তবে 0-সূচকযুক্ত ইনপুটগুলির জন্য বিকল্প)।
  • আপনি nএই ক্রমের 'তম সংখ্যা আউটপুট করার অনুমতি দেওয়া হয় । অথবা পুরো ক্রমটি উপরে এবং n'তম সংখ্যা সহ । (সুতরাং f(5)ফল হয় 5বা হয় 0,1,-1,-3,0,5।)
    • আপনি যদি n'তম সংখ্যাটি অন্তর্ভুক্ত করে সিকোয়েন্সটি আউটপুট চয়ন করেন তবে আউটপুট বিন্যাসটি নমনীয়। তালিকা / অ্যারে, কমা / স্থান / নতুন-লাইন সীমিত স্ট্রিং বা এসটিডিআউট ইত্যাদিতে মুদ্রিত হতে পারে etc.
  • ডিভাইড ( /) পূর্ণসংখ্যা / মেঝে বিভাজন, যা 0 দিকে চক্রের (ঋণাত্মক অনন্ত কিছু ভাষায় ক্ষেত্রে দেখা যায় যেমন প্রতি নয়)।

সাধারণ নিয়ম:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং রিটার্ন-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজনে একটি ব্যাখ্যা যোগ করুন।

উপরে অতিরিক্ত পরীক্ষার মামলা n=100:

Input     Output

1000      0
100000    0
123       -123
1234      -1
12345     12345
123456    0

1
আমি এটি oeis.orgপাইনি তাই আপনি এটি এখানে জমা দিতে পারেন। এটি একটি আকর্ষণীয় অনুক্রম, আমি অবাক হয়েছি এটি কেউ নিবন্ধন করে নি।
পাইপ 20

1
@ পাইপটি এটি বেশ স্বেচ্ছাচারী বলে মনে হচ্ছে
কিউউআর

উত্তর:


20

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

n=>[0,n,-1,-n][n&3]

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

প্রমাণ

আসুন ধরে নেওয়া যাক যে আমরা 4 এর কয়েকটি এন একাধিকের জন্য নিম্নলিখিত সম্পর্কগুলি রেখেছি relations

f(n)   = 0
f(n+1) = n+1
f(n+2) = -1
f(n+3) = -(n+3)

এবং এন = এন + 4 যাক । তারপরে, সংজ্ঞা অনুসারে:

f(N)   = f(n+4) = f(n+3) // (n+4) = -(n+3) // (n+4) = 0
f(N+1) = f(n+5) = f(n+4) + (n+5)  = 0 + (n+5)       = N+1
f(N+2) = f(n+6) = f(n+5) - (n+6)  = (n+5) - (n+6)   = -1
f(N+3) = f(n+7) = f(n+6) * (n+7)  = -1 * (n+7)      = -(N+3)

যা, গাণিতিক আনয়ন দ্বারা প্রমাণিত হয় যে সম্পর্কগুলি কোনও 4 এর N এর একাধিকের জন্য রয়েছে ।


2
কারণ বেশিরভাগ উত্তর হ'ল এই সমাধানটির বন্দর, আমি যুক্ত করতে চাই যে আমি যাচাই করেছি এটি প্রমাণযোগ্য।
এরিক আউটগলফার


আহ, বাদাম, খুব অনুরূপ কিছু নিয়ে কাজ করার সময় কাজের দ্বারা বিভ্রান্ত হয়ে পড়েছিল। +1
শেগি

কৌতূহলের বাইরে, "এন% 3" এর চেয়ে "এন ও 3" পছন্দ করার কোনও কারণ আছে কি?
আইয়ানএফ 1

2
@ আইয়ানএফ 1 আমি অনুমান করি যে এটি কেবলমাত্র একটি নিম্ন-স্তরের প্রোগ্রামিং অভ্যাস (কিছুটা দিকের গণনা করা এবং সমাবেশে মডুলো গণনার চেয়ে সহজ এবং দ্রুত)। তবে এটি এখানে খুব বেশি বোঝায় না এবং আমি এটি n%4পরে পরিবর্তিত করার জন্য অর্ধেক প্রলুব্ধ হয়েছিলাম যাতে এটি 32-বিটের চেয়ে বড় সংখ্যার সাথে কাজ করে।
আরনাউল্ড

4

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

nthসংখ্যা আউটপুট করে

ÎD(®s)sè

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

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

অনুক্রমের নিদর্শনগুলি ব্যবহার করে এন পর্যন্ত সংখ্যাগুলির একটি তালিকা আউটপুট করে

ÅÉāÉ·<*āÉ<‚øí˜

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

ব্যাখ্যা

এন = 7 ব্যবহারের উদাহরণ

ÅÉ               # List of odd numbers upto N
                 # STACK: [1,3,5,7]
  ā              # Enumerate 1-based
   É             # is odd?
                 # STACK: [1,3,5,7],[1,0,1,0]
    ·<           # double and decrement
                 # STACK: [1,3,5,7],[1,-1,1,-1]
      *          # multiply
                 # STACK: [1,-3,5,-7]
       āÉ<       # enumerate, isOdd, decrement
                 # STACK: [1,-3,5,-7],[0,-1,0,-1]
          ‚ø     # zip
                 # STACK: [[1, 0], [-3, -1], [5, 0], [-7, -1]]
            í    # reverse each
             ˜   # flatten
                 # RESULT: [0, 1, -1, -3, 0, 5, -1, -7]

4

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

আর্নউল্ডের উত্তর বন্দর:

lambda n:[0,n,-1,-n][n%4]

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


নিষ্পাপ সমাধান:

পাইথন 3 , 50 49 বাইট

lambda n:n and eval('int(f(n-1)%sn)'%'/+-*'[n%4])

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


পাইথন 2 , 78 77 76 58 57 53 52 বাইট

lambda n:n and eval('int(1.*f(n-1)%sn)'%'/+-*'[n%4])

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

একগুচ্ছ বাইট ব্যবহার করেছেন int, কারণ অজগরটি মেঝেতে বিভক্ত হয়, এবং 0প্রশ্নের মতো নয় towards


@ কেভিন ক্রুজসেন হ্যাঁ, ধন্যবাদ :)
টিফিল্ড


3

টিআইএস -n 2 1 , 123 বাইট

এর nজন্য তম সংখ্যাটি আউটপুট করে 0 <= n <= 999। (উপরের সীমাটি ভাষার সীমাবদ্ধতার কারণে হয়)।

@0
MOV UP ACC
MOV ACC ANY
L:SUB 4
JGZ L
JEZ L
ADD 5
JRO -5
@1
MOV UP ACC
JRO UP
SUB ACC
JRO 3
MOV 1 ACC
NEG
MOV ACC ANY
HCF

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


টিআইএস -n 2 1 , 124 বাইট

এর nজন্য তম সংখ্যাটি আউটপুট করে 0 <= n <= 999। (উপরের সীমাটি ভাষার সীমাবদ্ধতার কারণে হয়)। একাধিক সরবরাহ করা nযেতে পারে, সাদা স্থান দ্বারা পৃথক।

@0
MOV UP ACC
MOV ACC ANY
L:SUB 4
JGZ L
JEZ L
ADD 5
MOV ACC ANY
@1
MOV UP ACC
JRO UP
SUB ACC
JRO 3
MOV 1 ACC
NEG
MOV ACC ANY

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


টিআইএস -n 3 1 , 192 বাইট

এর 0..nজন্য মানগুলি আউটপুট করে 0 <= n <= 999। (উপরের সীমাটি ভাষার সীমাবদ্ধতার কারণে হয়)।

@0
MOV UP ACC
ADD 1
MOV ACC ANY
JRO -1
@1
SUB UP
JLZ C
HCF
C:ADD UP
MOV ACC ANY
ADD 1
SWP
ADD 1
MOV ACC ANY
SUB 4
JEZ W
ADD 4
W:SWP
@2
MOV UP ACC
JRO UP
SUB ACC
JRO 3
MOV 1 ACC
NEG
MOV ACC ANY

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


সমস্তই সংখ্যা I / O ( -nপতাকা) ব্যবহার করে। প্রথম দুটি সমাধান দুটি গণনা নোড ব্যবহার করে, একটি অন্যটির উপরে অবস্থিত। তৃতীয়টিতে তিনটি নোডের স্ট্যাক রয়েছে।

প্রথম দুটি সমাধানের জন্য, উপরের নোডটি ইনপুটটি পড়ে, আসল সংখ্যাটি প্রেরণ করে, তারপরে বারবার 4 টি বিয়োগ করে যতক্ষণ না আমরা নেতিবাচক হয়ে যাই, তারপরে আমাদের জাম্প টেবিলের জন্য সূচীতে 5 যোগ করে। এটি সমান (n % 4) + 1

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

তিনটি সমাধানের নীচের নোড একই; এটি একটি লাফ টেবিল আছে, এবং এই যেখানে যাদু ঘটে। আমরা মূল সংখ্যা সংরক্ষণ ACCতারপর, JRO(সম্ভবত জে UMP আর elative হে ffset) দ্বারা এগিয়ে 1, 2, 3, অথবা 4, কী নোড উপরে বলছেন নির্ভর করে।

পিছিয়ে কাজ করা:

  • 4হবে একটি ) NEGখেয়ে ফেলতাম ACC, এবং ) সরানো ACCআউটপুট নিচে।
  • 3এর 1মধ্যে রাখা হবে ACC, তারপরে 4একটি এবং 4 পদক্ষেপগুলি সম্পাদন করবে ।
  • 2সরাসরি পদক্ষেপে লাফিয়ে যাবে 4
  • 1হবে SUBনালীর ACCনিজেই (কার্যকরভাবে zeroing বন্ধ ACC), তারপর ধাপে না 2, যা জাম্প 4

2

সি (জিসিসি) , 62 বাইট

f(n,k){k=~-n;n=n?n%4?k%4?n-2&3?f(k)*n:f(k)-n:f(k)+n:f(k)/n:0;}

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


অলিভিগ্রগ্রোগের জাভা উত্তরটির একটি বন্দর তৈরি করে আপনি ঠিক আপনার বাইট-কাউন্ট (31 বাইট) অর্ধেক করতে পারতেন : তবে f(n){n=n%2>0?n*(2-n%4):n%4/-2;}আমি এটি দ্বিতীয় উত্তর হিসাবে যুক্ত করব কারণ আমিও আপনার পুনরাবৃত্ত পদ্ধতির পছন্দ করি। :)
কেভিন ক্রুইজসেন

@ কেভিনিক্রুজসেন আমি তাদের জাভা 10 সমাধান দেখতে পেয়েছি এবং এর বংশবৃদ্ধি লক্ষ্য করেছি, যদিও আমি কেবল তাদের সমাধানটি অনুলিপি করতে চাইনি, কারণ দুটি ভাষার পাটিগণিত বাক্য গঠন একই রকম।
জোনাথন ফ্রেচ

1

জেলি , 8 বাইট

,-;N;0⁸ị

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

-1 লিনকে ধন্যবাদ ।

অন্যরা কী করছে (আরনাউল্ডের সমাধানের বন্দর), সমর্থন করে 0

জেলি , 17 বাইট

A:A}××Ṡ¥
R_×ç+4ƭ/

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

0 সমর্থিত নয়.



1

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

.+
*
r`(____)*$
_$.=
____
-
___.*
-1
__

_.*
0

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

.+
*

অ্যানারিতে রূপান্তর করুন।

r`(____)*$
_$.=

দশমিকের দিকে ফিরে রূপান্তর করুন, তবে n%4+1রেখাচিত্রটি ছেড়ে দিন ।

____
-

ক্ষেত্রে যে 4, তারপরে ফলাফল -n

___.*
-1

কেস 3: -1

__

কেস 2: n

_.*
0

মামলা 1: 0



1

এপিএল (ডায়ালগ ক্লাসিক) , 22 12 বাইট

এরিক আউটগলফারের মন্তব্যের কারণে 10 টি বাইট সংরক্ষণ করা হয়েছে। ধন্যবাদ!

4∘|⊃0,⊢,¯1,-

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

নবম সংখ্যা আউটপুট করে

আমি এপিএলকে চিনি না, আমি ডায়ালগ এপিএলে আমার জে বন্দরটি আর্নল্ডের সমাধানের কাজটি করার চেষ্টা করেছি।


2
দুর্দান্ত চেষ্টা! কয়েকটি মন্তব্য: 1) আপনি এর (0,⍵,¯1,-⍵)সাথে প্রতিস্থাপন করতে পারেন (0⍵¯1,-⍵)। 2) আপনি সিস্টেম ভেরিয়েবলকে হ্যাঁ (হ্যাঁ, এটি অনুমোদিত) 1+বলে মনে করে ⎕IOআপনি এটিকে সরাতে পারেন 0। 3) f←ফাংশন জমা দেওয়ার সময় আমরা সাধারণত অংশটি গণনা করি না । 4) আপনি ইনডেক্সের পরিবর্তে ফাংশনটি ব্যবহার করতে পারেন []। সকলেই মিলে এটি গঠন করে: ⎕IO←0( এটিকে গণনা করবেন না){(4|⍵)⊃0⍵¯1,-⍵}
এরিক দ্য আউটগল্ফার

@ এরিক আউটগল্ফার আপনাকে ধন্যবাদ!
গ্যালেন ইভানভ

2
আরো উন্নত golfing এই পদ্ধতির উপর ভিত্তি করে: 4∘|⊃0,⊢,¯1,-
এরিক আউটগল্ফার

1
@ এরিক আউটগল্ফার - হ্যাঁ, সত্যিই! আমার ধারণা 4∘|⊃0,⊢,¯1,- আমার এপিএলে আমার জে সমাধানটি দেখতে হুবহু আপনার 4&|{0,],_1,-মত। আবার ধন্যবাদ!
গ্যালেন ইভানভ

1
প্রকৃতপক্ষে, জে একটি এপিএল বৈকল্পিক, যদিও ডায়ালগ এবং এনএআরএস 2000 এর মতো অন্যান্য আরও এপিএল-জাতীয়গুলির চেয়ে বেশি দূরত্ব রয়েছে।
এরিক আউটগল্ফার

1

কিউবিক্স , 20 19 বাইট

Iun:^>s1ns:u@Ota3s0

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

কিউবিক্স একই পোর্ট পোর্ট।

একটি কিউবে:

    I u
    n :
^ > s 1 n s : u
@ O t a 3 s 0 .
    . .
    . .

প্রথম বিটটি ^Iu:n>s1ns:u0sস্ট্যাক তৈরি করে এবং তারপরে 3atউপযুক্ত আইটেমটি টিওএস এ অনুলিপি করে, তারপরে Oআউটপুট এবং @প্রোগ্রামটি শেষ হয়।


0

হোয়াইটস্পেস, 84 83 বাইট

[S S S N
_Push_0][S N
S _Duplicate_0][T   T   S _Store][S S S T   S N
_Push_2][S S T  T   N
_Push_-1][T T   S _Store][S S S T   N
_Push_1][S N
S _Duplicate_1][T   N
T   T   _Read_STDIN_as_integer][S S S T T   N
_Push_3][S S S T    N
_Push_1][T  T   T   ][S S T T   N
_Push_-1][T S S N
_Multiply][T    T   S _Store][T T   T   _Retrieve_input][S S S T    S S N
_Push_4][T  S T T   _Modulo][T  T   T   _Retrieve_result][T N
S T _Print_as_integer]

বর্ণ S(স্থান), T(ট্যাব) এবং N(নতুন-লাইন) কেবল হাইলাইট হিসাবে যুক্ত করা হয়েছে।
[..._some_action]শুধুমাত্র ব্যাখ্যা হিসাবে যুক্ত।

এটি অনলাইনে চেষ্টা করুন (কেবলমাত্র কাঁচা জায়গা, ট্যাব এবং নতুন লাইন সহ)।

@ আরনাউল্ডের জাভাস্ক্রিপ্ট উত্তরের পোর্ট ।

ব্যাখ্যা (উদাহরণ ইনপুট n=7):

Command   Explanation         Stack        Heap                  STDIN   STDOUT   STDERR

SSSN      Push 0              [0]
SNS       Duplicate top (0)   [0,0]
TTS       Store               []           {0:0}
SSSTSN    Push 2              [2]          {0:0}
SSTTN     Push -1             [2,-1]       {0:0}
TTS       Store               []           {0:0,2:-1}
SSSTN     Push 1              [1]          {0:0,2:-1}
SNS       Duplicate top (1)   [1,1]        {0:0,2:-1}
TNTT      Read STDIN as nr    [1]          {0:0,1:7,2:-1}        7
SSSTTN    Push 3              [1,3]        {0:0,1:7,2:-1}
SSSTN     Push 1              [1,3,1]      {0:0,1:7,2:-1}
TTT       Retrieve input      [1,3,7]      {0:0,1:7,2:-1}
SSTTN     Push -1             [1,3,7,-1]   {0:0,1:7,2:-1}
TSSN      Multiply (-1*7)     [1,3,-7]     {0:0,1:7,2:-1}
TTS       Store               [1]          {0:0,1:7,2:-1,3:-7}
TTT       Retrieve input      [7]          {0:0,1:7,2:-1,3:-7}
SSSTSSN   Push 4              [7,4]        {0:0,1:7,2:-1,3:-7}
TSST      Modulo (7%4)        [3]          {0:0,1:7,2:-1,3:-7}
TTT       Retrieve            [-7]         {0:0,1:7,2:-1,3:-7}
TNST      Print as integer    []           {0:0,1:7,2:-1,3:-7}           -7
                                                                                  error

ত্রুটি সহ বন্ধ: প্রস্থানটি সংজ্ঞায়িত হয়নি।

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