দুই ধাপ এগিয়ে এবং এক ধাপ পিছনে


15

ধরা যাক আমি আমার গন্তব্য থেকে দশ ধাপ দূরে। "দুই ধাপ এগিয়ে এবং এক ধাপ পিছনে" এই প্রবাদটি অনুসরণ করে আমি সেখানে হাঁটছি। আমি আমার গন্তব্যে ঠিক দাঁড়িয়ে না হওয়া পর্যন্ত আমি দুটি পদক্ষেপ এগিয়ে চলেছি one (এটিতে আমার গন্তব্য পেরিয়ে যাওয়া এবং এতে ফিরে আসা জড়িত থাকতে পারে)। আমি কয়টি পদক্ষেপে হেঁটেছি?

অবশ্যই, আমি 10 ধাপ দূরে হতে পারে না। আমি হতে পারে 11 মাপ দূরে, বা 100. আমি দশ গতি পরিমাপ করতে পারে, এবং সমস্যা সমাধানের জন্য পিছনে এবং হাঁটা চালিয়ে যেতে পারে, বা ... আমি কিছু কোড লিখতে পারে!

  • ক্রমানুসারে N পদক্ষেপগুলি পেতে কত পদক্ষেপ নেয় তা কার্যকর করার জন্য একটি ফাংশন লিখুন: দুই ধাপ এগিয়ে, এক ধাপ পিছনে।
  • ধরুন আপনি 0 ধাপে শুরু করেছেন "দুটি পদক্ষেপ এগিয়ে" একটি হিসাবে নয়, দুটি পদক্ষেপ হিসাবে গণনা করুন।
  • ধরুন সমস্ত পদক্ষেপ একটি সমান দৈর্ঘ্য।
  • আপনি যখন সেই জায়গায় পৌঁছেছেন তখন এটি প্রথম পদক্ষেপের সংখ্যাটি ফিরিয়ে আনবে। (উদাহরণস্বরূপ, 10 পদক্ষেপের দূরে 26 টি পদক্ষেপ নেওয়া হয় তবে আপনি এটি 30 ধাপে আবার আঘাত করতে চান)। আমরা 26 টিতে আগ্রহী।
  • আপনার পছন্দ মতো যে কোনও ভাষা ব্যবহার করুন।
  • এটি কোনও ধনাত্মক পূর্ণসংখ্যা ইনপুট হিসাবে গ্রহণ করবে should এটি লক্ষ্য পদক্ষেপের প্রতিনিধিত্ব করে।
  • ক্ষুদ্রতম সংখ্যক বাইট জিতেছে।

উদাহরণ:

আমি 5 টি পদক্ষেপ দূরে পেতে চাই:

| | | | | | <- I'm at step 0, not yet on the grid.
| |X| | | | <- I take two steps forward, I'm on step 2: the count is 2
|X| | | | | <- I take one step back, I'm on step 1: the count is 3
| | |X| | | <- I take two steps forward, I'm on step 3: the count is 5
| |X| | | | <- I take one step back, I'm on step 2 again: the count is 6
| | | |X| | <- I take two steps forward, I'm on step 4: the count is 8
| | |X| | | <- I take one step back, I'm on step 3 again: the count is 9
| | | | |X| <- I take two steps forward, I'm on step 5: the count is 11

এই ক্ষেত্রে, ফাংশনের ফলাফল 11 হবে।

উদাহরণ ফলাফল:

1      =>  3
5      =>  11
9      =>  23
10     =>  26
11     =>  29
100    =>  296
1000   =>  2996
10000  =>  29996
100000 =>  299996

মজা আছে, গল্ফার্স!


7
হুম ... এটা খুব পরিচিত মনে হচ্ছে।
শেগি


@ রড হুরয়! আমি তা নিয়ে পালিয়ে গেলাম! ;)
এজেফারাডে

হ্যাঁ, মনে হচ্ছে এটির মতো, @ রড।
শেগি

@ শেগি রড তার মন্তব্যটি কিছুটা পরিবর্তন করেছেন। পূর্ববর্তীটিতে উল্লেখ করা হয়েছে যে শামুক / কূপের প্রশ্ন পুনরাবৃত্তির সংখ্যা জিজ্ঞাসা করছে, তবে এটি আচ্ছাদিত দূরত্বের জন্য জিজ্ঞাসা করছে।
এজেফারাডে 21

উত্তর:


5

ওসিস , 5 4 বাইট

@ আদনানকে ধন্যবাদ 1 বাইট সংরক্ষিত

3+23

বিভ্রান্ত হতে হবে না 23+3

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

কিভাবে?

      implicitly push a(n-1)
3     push 3
 +    sum and implicitly print
  2   a(2) = 2
   3  a(1) = 3

1
আপনি ছেড়ে দিতে পারেন b
আদনান

আমি মনে করি আপনি এটি 3 যুক্ত করে নয়, দিয়ে গুণতে চান।
এরিক আউটগল্ফার

@ এরিকথিউটগলফার প্রোগ্রামটি একটি (এন) কে একটি (এন -1) +3 হিসাবে গণনা করে ।
ডেনিস




9

বহুগ্লোট: জাভা 8 / জাভাস্ক্রিপ্ট / সি #। নেট, 16 14 12 বাইট

n->3*n-1%n*4

এটি অনলাইনে চেষ্টা করুন (জাভা 8)

n=>3*n-1%n*4

এটি অনলাইনে চেষ্টা করুন (জাভাস্ক্রিপ্ট)।
এটি অনলাইনে চেষ্টা করুন (সি #। নেট)

@ লিনের পাইথন 2 উত্তরটির বন্দর , সুতরাং তার উত্তরটি উত্তর দিতে ভুলবেন না।


পুরানো উত্তর:

বহুগ্লোট: জাভা 8 / জাভাস্ক্রিপ্ট / সি #। নেট, 16 14 বাইট

n->n<2?3:n*3-4

এটি অনলাইনে চেষ্টা করুন (জাভা 8)

n=>n<2?3:n*3-4

এটি অনলাইনে চেষ্টা করুন (জাভাস্ক্রিপ্ট)।
এটি অনলাইনে চেষ্টা করুন (সি #। নেট)

ব্যাখ্যা:

n->       // Method with integer as both parameter and return-type
  n<2?    //  If the input is 1:
   3      //   Return 3
  :       //  Else:
   n*3-4  //   Return the input multiplied by 3, and subtract 4

জাভা স্ক্রিপ্ট বহুগ্লোট, যদি আপনি একটি চর্বিযুক্ত তীর ব্যবহার করেন।
শেগি

@ শেগি যুক্ত হয়েছে, পাশাপাশি সি #। নেট :) যদিও n=>(--n*3||4)-1জাভাস্ক্রিপ্টে এটিও সম্ভব (14 বাইটও)।
কেভিন ক্রুইজসেন

7

আর , 20 বাইট

N=scan();3*N-4*(N>1)

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

আমি আমার কম মার্জিত সমাধান প্রয়োগ না করা পর্যন্ত প্যাটার্নটি লক্ষ্য করি নি।


3
10 কে বিটিডাব্লুতে অভিনন্দন!
লুইস মেন্ডো

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

3
@ জিউস্পেপে আমি অনুভূতিটি জানি: গত সপ্তাহে 20k, পাশাপাশি দ্বিতীয় বছরের বার্ষিকী। :)
কেভিন ক্রুইজসেন 14 '30








4

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

3*n-4*(n>1)সূত্র ব্যবহার করে । 3 ( 3*) দ্বারা ইনপুট গুণান , পুনরায় ইনপুট Gচাপুন ( ) এবং এটি হ্রাস করুন ( q)। ফলাফলটি যদি শূন্য না হয় ( ?) তবে ফলাফল ( 4-) থেকে 4 টি বিয়োগ করুন ।

3*Gq?4-

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


ডেনিসের জেলি উত্তর পোর্টিং করে 6 বাইট2-|EG+
জিউসেপ্পে




3

X86_64 , 34 32 24 বাইটে মেশিনকোড

8d47fe9931d029d08d0447c3

iপূর্ণসংখ্যা আউটপুট জন্য পতাকা প্রয়োজন ; কোডটিতে ম্যানুয়ালি যোগ করার মাধ্যমে ইনপুট নেওয়া হয়।

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


24-বাইট মেশিনকোড প্রোগ্রামটি খুঁজতে আমি এই 4 টি আলাদা সি ফাংশনটি দিয়েছিলাম:

  • n+2*abs(n-2)= 8d47fe9931d029d08d0447c3(24 বাইট)
  • 3*n-4*!!~-n= 8d047f31d2ffcf0f95c2c1e20229d0c3(32 বাইট)
  • n*3-4*(n>1)= 31d283ff028d047f0f9dc2c1e20229d0c3(34 বাইট)
  • n<2?3:n*3-4= 83ff01b8030000007e068d047f83e804c3(34 বাইট)

তাহলে এই ভাষাটি ঠিক কী?
qwr

@qwr একটি সাধারণ বিবরণের জন্য সংগ্রহস্থলটিতে README দেখুন।
এমডি এক্সএফ


2

4 , 54 বাইট

3.6010160303604047002020003100000180010202046000095024

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

আপনি যদি ইনপুট পদ্ধতিটি প্রশ্ন করেন তবে দয়া করে প্রথমে পরিসংখিক ইনপুটটি দেখুন এবং আউটপুট একটি অক্ষর কোড মেটা পোস্ট হিসাবে দেওয়া যেতে পারে


কেন এই নিম্নমানের ছিল?
ইউরিয়েল

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

@ এজেফারাডে এটি বাইট ইনপুট এবং আউটপুট ব্যবহার করে যা মেটা sensকমত্য দ্বারা বৈধ। ইনপুট বিভাগের ভিতরে ব্যাখ্যাটি দেখুন
ইউরিয়েল

ফলাফল ব্যাখ্যা করার জন্য কোন সংস্থান? নাকি ইনপুট?
এজেফারাডে

1
@ এজেফারাডে রেজাল্টের চর কোডটি উত্তর। প্রাসঙ্গিক মেটা পোস্ট অন্তর্ভুক্ত করার জন্য আমি প্রশ্নটি সম্পাদনা করেছি। 4কেবল চর ইনপুট রয়েছে।
ইউরিয়েল

2

জাপট, 7 বাইট

লিনের পাইথন সমাধানের একটি বন্দর।

*3É%U*4

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


বিকল্প

এটি ছিল বদ্ধ সূত্র সমাধানগুলির একটি মজাদার বিকল্প যা দুর্ভাগ্যবশত, দীর্ঘকাল একটি বাইট:

_+3}gN³²

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




2

65816 মেশিন কোড, 22 বাইট

আমি এই 65C02 মেশিন কোডটি 3 বাইট কম জন্য সহজেই তৈরি করতে পারতাম, তবে না, যেহেতু 65C02 এ নিবন্ধকের আকার 16-বিটের পরিবর্তে 8-বিট is এটি কার্যকর হবে, তবে এটি বিরক্তিকর কারণ আপনি কেবলমাত্র কম সংখ্যক ব্যবহার করতে পারেন ;-)

এক্সএক্সডি ডাম্প:

00000000: 7aa9 0000 aa89 0100 d004 8888 e824 c8e8  z............$..
00000010: 1ac0 0000 d0ef                           ......

বিযুক্ত / কোড ব্যাখ্যা:

; target is on the stack
  ply              7A                  ; pull target from stack
  lda #$0000       A9 00 00            ; set loop counter to 0
  tax              AA                  ; set step counter to 0
loop:
  bit #$0001       89 01 00            ; sets Z if loop counter is even
  bne odd          D0 04               ; if Z is not set, jump to 'odd'
  dey              88                  ; decrement target twice
  dey              88
  inx              E8                  ; increment step counter
  .byte $24        24                  ; BIT $xx opcode, effectively skips the next byte
odd:
  iny              C8                  ; increment target

  inx              E8                  ; increment step counter
  inc a            1A                  ; increment loop counter

  cpy #$0000       C0 00 00            ; sets zero flag, can be optimized maybe?
  bne loop         D0 EF               ; if Y is non-zero, loop

; result is in register X

একটি 65816- সামঞ্জস্যপূর্ণ এমুলেটর এটি পরীক্ষা করে দেখুন:

পরীক্ষামূলক


1

বিক্রয় , 28 বাইট

F(){ bc<<<$1*3-$(($1>1))*4;}

পরীক্ষা:

F 1
3

F 2
2

F 3
5

F 4
8

F5
11

F 11
29

F 100
296

F 100000
299996

ব্যাখ্যা:

সূত্রটি হ'ল:

if n == 1  ==> F(1) = 3
else F(n) = 3*n - 4

3 ধাপের ক্রম অনুসরণ করে "দুই ধাপ এগিয়ে এবং এক ধাপ পিছনে", আমাদের গাণিতিক সিরিজ থাকবে:

 +2  2 => 2  ( or 6 )
 -1  1 => 3
 -----------
 +2  3 => 5  ( or 9 )
 -1  2 => 6
 -----------
 +2  4 => 8  ( or 12 )
 -1  3 => 9
 -----------
 +2  5 => 11 ( or 15 )
 -1  4 => 12
 -----------
 +2  6 => 14 ( or 18 )
 -1  5 => 15 
 -----------
 +2  7 => 17 ( or 21 )
 -1  6 => 18

সর্বনিম্ন বা প্রথম কাকতালীয় সময়ে:

 1 => 3
 2 => 2
 3 => 5
 4 => 8
 5 => 11
 6 => 14

একটি সূত্রে:

F(n) = 3*n - 4(n>1)     with n>1 is 1 or 0 (if n==1)

এটি কোন শেলটি দয়া করে তা বর্ণনা করুন
কিউউআর

সাইগউইনে পরীক্ষিত (সিওয়াইডাব্লুএএনএনটি -10.0 2.3.1 (0.291 / 5/3) 2015-11-14 12:44 x86_64 সাইগউইন)
আলী আইএসএসএ

আপনি সরাসরি এটি বিসি লিখতে পারেন?
qwr

আমি বিসি-র সাথে পরিচিত নই, তবে যেহেতু ফাংশনটির আর্গুমেন্ট (several 1) বেশ কয়েকবার ব্যবহৃত হয় এবং কিছু শেল-নির্দিষ্ট স্টাফ (গাণিতিক সম্প্রসারণ, $((…))) সম্পন্ন হয়, সম্ভবত তা হয় না।
2xsaiko

1
F(){bc<<<$1*3-$(($1>1))*4}যদিও zsh এ কাজ করে এবং 2 বাইট অপসারণ করে
2xsaiko

1

পাইথন 3 , 48 বাইট

def a(x):
    if x!=1:
        return((3*x)-4)
    return(3)

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


চমৎকার কাজ. আপনি "পাদলেখ" বিভাগেও কিছু কোড রাখতে চান। এইভাবে আপনি আপনার গল্ফ এন্ট্রি প্যাডিং না করে আপনার ফাংশনটি পরীক্ষা করতে পারেন ...
এজেফারাডে

@ এজেফারাডে আমার পোস্টের ফুটার বা আমার কোড?
নাথান ডিমার 21

অন ​​ট্রাই ইট অনলাইনে; আপনি এমন একটি ফুটার যুক্ত করতে পারেন যা আপনার কোডের সাথে চলে তবে বাইট দৈর্ঘ্যের সাথে গণনা করে না। তারপরে আউটপুট কাজের সময় আপনার কোডটি প্রদর্শন করবে।
এজেফারাডে 21


@ জোকিং আপনি কি পাইথনে ল্যাম্বডা ফাংশনগুলির জন্য একটি ভাল গাইড সম্পর্কে জানেন? সিনট্যাক্স কীভাবে কাজ করে তা আমি সত্যিই বুঝতে পারি না।
নাথান ডিমার



1

ব্রেন-ফ্লাক , 38 বাইট

({<([()()]{})>()(){(<((){})>)()}{}}{})

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

প্রথম উত্তরটি আমি পিছনে পিছনে পা রেখে উত্তর গণনা করতে দেখছি।

({ while not at 0
  <([()()]{})>()() take two steps forward, counting 2 steps
  {(<((){})>)()}{} take one step back, if not at 0, and add 1 step
}{}) remove the 0 and push step sum

1

ডাব্লু d , 7 বাইট

♦óÖ╣░Θ$

ব্যাখ্যা

3*1a<4*-

মূল্যায়ন (a*3)-4*(a>1)

আর একটি সম্ভাব্য বিকল্প

3*1am4*-

মূল্যায়ন (a*3)-4*(1%a)

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