X Steps Forward, 1 Step Back


21

นี่คือ 100 หมายเลขแรกของลำดับง่าย ๆ :

0,1,0,2,1,4,3,7,6,11,10,16,15,22,21,29,28,37,36,46,45,56,55,67,66,79,78,92,91,106,105,121,120,137,136,154,153,172,171,191,190,211,210,232,231,254,253,277,276,301,300,326,325,352,351,379,378,407,406,436,435,466,465,497,496,529,528,562,561,596,595,631,630,667,666,704,703,742,741,781,780,821,820,862,861,904,903,947,946,991,990,1036,1035,1082,1081,1129,1128,1177,1176,1226

ลำดับนี้ทำงานอย่างไร

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

   0,      1-1=0,      2-1=1,      4-1=3,      7-1=6,       11-1=10,        16-1=15,      
     0+1=1,      0+2=2,      1+3=4,      3+4=7,      6+5=11,        10+6=16,        15+7=22
  • a(0) = 0
  • สำหรับทุกคี่n(ดัชนี 0) มันa(n-1) + X(ที่ไหนX=1และเพิ่มขึ้น 1 ทุกครั้งที่เข้าถึง)
  • สำหรับทุกๆเลขคู่n(ดัชนี 0)a(n-1) - 1

ท้าทาย:

หนึ่งใน:

กฏท้าทาย:

  • อินพุตnสามารถเป็นได้ทั้ง 0- หรือ 1-indexed
  • หากคุณแสดงลำดับ (ส่วนหนึ่งของ) คุณสามารถใช้ list / array, พิมพ์ไปยัง STDOUT ด้วยตัวคั่นใด ๆ (เว้นวรรค, จุลภาค, การขึ้นบรรทัดใหม่ ฯลฯ ) การโทรของคุณ
  • โปรดระบุว่าคุณใช้คำตอบใดในสามตัวเลือก
  • คุณจะต้องสนับสนุนอย่างน้อย 10,000 หมายเลขแรก (หมายเลขที่ 10,000 12,497,501)

กฎทั่วไป:

  • นี่คือดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
    อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ '
  • ใช้กฎมาตรฐานสำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีการที่มีพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
  • ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
  • หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
  • นอกจากนี้โปรดเพิ่มคำอธิบายหากเป็นไปได้

กรณีทดสอบ:

Pastebin ที่มี 10,001 หมายเลขแรกตามลำดับรู้สึกอิสระที่จะเลือกสิ่งที่คุณต้องการ

ตัวเลขที่สูงขึ้นบางส่วน:

n (0-indexed)    Output:

68,690           589,772,340
100,000          1,249,975,000
162,207          3,288,888,857
453,271          25,681,824,931
888,888          98,765,012,346
1,000,000        124,999,750,000

คำตอบ:



8

Excel, 31 ไบต์

คำตอบคือการ0จัดทำดัชนี ส่งออกnจำนวน

=(A1^2+IF(ISODD(A1),7,-2*A1))/8

ลำดับที่อธิบายในท้ายที่สุดเป็นเพียงสองลำดับ interlaced:

ODD:   (x^2+x+2)/2
EVEN:  (x^2-x)/2

การพัวพันเหล่านี้เป็นหนึ่งในการ0จัดทำดัชนีให้:

a = (x^2 - 2x)/8 if even
a = (x^2 + 7 )/8 if odd

ซึ่งจะช่วยให้:

=IF(ISODD(A1),(A1^2+7)/8,(A1^2-2*A1)/8)

ซึ่งเราเล่นกอล์ฟเป็น31ไบต์


ด้วยวิธีการเดียวกันการ1จัดทำดัชนีให้37ไบต์:

=(A1^2-IF(ISODD(A1),4*A1-3,2*A1-8))/8



4

Haskell , 40 38 37 ไบต์

scanl(flip($))0$[1..]>>=(:[pred]).(+)

ส่งคืนรายการที่ไม่มีที่สิ้นสุดลองออนไลน์!

คำอธิบาย

scanlใช้เวลาสามข้อโต้แย้งf, initและxs( [ x 0 , x 1 ... ] ) และสร้างรายการใหม่:

[ a 0 = init , a 1 = f (a 0 , x 0 ) , a 2 = f (a 1 , x 1 ) ... ]

เราตั้งค่าinit = 0และการใช้งานพลิก($)ประกอบการแอพลิเคชัน (จึงจะมีผลบังคับใช้ฉันไปยังฟังก์ชันx ผม ) ตอนนี้เราจะต้องรายชื่อของฟังก์ชั่น - รายการเป็นรายการที่ไม่มีที่สิ้นสุดกับฟังก์ชั่นที่เหมาะสม:[1..]>>=(:[pred]).(+)

[(+1),(-1),(+2),(-1),(+3),(-1),(+4),...

ทางเลือกที่น่าสนใจ 37 ไบต์

flipมีประเภทที่(a -> b -> c) -> b -> a -> cเราสามารถใช้id :: d -> dแทน($)เนื่องจากการอนุมานประเภทของ Haskell ประเภทdจะรวมกับa -> bทำให้เราเหมือนกัน

ลองออนไลน์!

แก้ไข

-2 ไบต์โดยใช้(>>=)แทนdo-notation

-1 ไบต์โดยใช้แทนscanlzipWith



3

05AB1E , 10 ไบต์

ÎF<NÈi¼¾>+

ลองออนไลน์!

คำอธิบาย

Î             # initialize stack with: 0, input
 F            # for N in [0 ... input-1] do:
  <           # decrement the current number
   NÈi        # if N is even
      ¼       # increment a counter
       ¾>     # push counter+1
         +    # add to current number

อีก 10 ไบต์: ÎFNÈN;Ì*<O


ÎGDN+D<สร้างลำดับ แต่การคว้าองค์ประกอบที่ n ดูเหมือน ... ยากใน 3 ไบต์
Magic Octopus Urn


3

APL (Dyalog Unicode) , 16 12 ไบต์SBCS

ฟังก์ชันนำหน้าเงียบโดยไม่ระบุชื่อ 0 การจัดทำดัชนี

+/⊢↑∘∊¯1,¨⍨⍳

ลองออนไลน์!

+/ ผลรวมของ

⊢↑nองค์ประกอบ แรก

∘∊ ของε nlisted (บี้)

¯1,¨⍨ ลบหนึ่งต่อท้ายไปแต่ละ

 แรกn ɩ ndices (0 ถึงn-1


อ้านั่นคือทางออกของฉัน ... เดาว่ามันคล้ายกันมากพอ
Erik the Outgolfer

3

เยลลี่ 6 ไบต์

HḶS‘_Ḃ

การเชื่อมโยงเอกยอมรับ (1 จัดทำดัชนี) ซึ่งผลตอบแทนna(n)

ลองออนไลน์! หรือดูชุดทดสอบ

อย่างไร?

HḶS‘_Ḃ - link: n
H      - halve         -> n/2.0
 Ḷ     - lowered range -> [0,1,2,...,floor(n/2.0)-1]
  S    - sum           -> TriangleNumber(floor(n/2.0)-1)
   ‘   - increment     -> TriangleNumber(floor(n/2.0)-1)+1
     Ḃ - bit = 1 if n is odd, 0 if it's even
    _  - subtract      -> TriangleNumber(floor(n/2.0)-1)+isEven(n)

หืมแนวทางที่น่าสนใจอยู่ตรงนั้น
Erik the Outgolfer

3

PHP , 73 64 55 51 47 ไบต์

วิธีแรก

คำตอบกอล์ฟรหัสแรก!
ฉันแน่ใจว่ามีเทคนิค PHP เพื่อทำให้สั้นลงและอาจปรับปรุงคณิตศาสตร์ได้

ใช้ n เป็นอาร์กิวเมนต์แรกและส่งออกตัวเลขที่ n ในลำดับ

$y=$argv[1]/2;for(;$i<$y+1;)$x+=$i++;echo$x-($y|0);

ลบ 9 ไบต์โดยลบ "$ x = 0;" และ "$ i = 0"

ลบ 9 ไบต์ด้วย @Kevin Cruijssen ปรับปรุงการวนรอบและการสูญเสียของแท็กปิดท้าย

ลบ 1 ไบต์โดยใช้ bitwise หรือ "|" มากกว่า "(int)"

ลบ 3 ไบต์ด้วย @Dennis เนื่องจากคุณสามารถลบแท็กโดยเรียกใช้จากบรรทัดคำสั่งด้วย "php -r 'code here'"

ลองออนไลน์!

วิธีที่สอง

จับคู่คำตอบก่อนหน้าของฉันด้วยวิธีการใหม่ทั้งหมด!

for(;$i<$argv[1];$i++)$x+=($y^=1)?$i/2+1:-1;echo$x;

ใช้ XOR และตัวดำเนินการ tenary เพื่อสลับระหว่างผลบวกในลูป

แก้ไข: ใช้ไม่ได้กับ n = 0 และฉันไม่รู้ว่าทำไม $ i ไม่ได้รับมอบหมายดังนั้นควรเป็น 0 ดังนั้นการวนซ้ำ($i<$argv[1])จึงล้มเหลว(0<0==false)ดังนั้น $ x ที่ไม่ได้กำหนดจึงควรแสดงผลลัพธ์เป็น 0 และไม่ใช่ 1

ลองออนไลน์!

วิธีที่สาม

การแปลงสูตร excel ที่ @Wernisch ที่สร้างขึ้นเป็น PHP นั้นให้โซลูชันขนาด 47 ไบต์

$z=$argv[1];echo(pow($z,2)+(($z&1)?7:-2*$z))/8;

ลองออนไลน์!


1
สวัสดียินดีต้อนรับสู่ PPCG! หากคุณยังไม่มีเคล็ดลับสำหรับการเล่นกอล์ฟใน PHPและเคล็ดลับสำหรับการเล่นกอล์ฟใน <ทุกภาษา>อาจน่าสนใจในการอ่าน บางสิ่งในการเล่นกอล์ฟ: คุณสามารถลบส่วนท้าย?>ได้ การลบ$x=0และ$i=0ได้รับอนุญาตแน่นอน (หากไม่ใช่$x=$i=0จะสั้นกว่าด้วย) for(;$i<$y+1;)$x+=$i++;นอกจากนี้วงที่สามารถลงไป ซึ่งทั้งหมดคือ -15 ไบต์ เพลิดเพลินไปกับการพักผ่อนของคุณ! :)
Kevin Cruijssen

@KevinCruijssen ขอบคุณมาก!
Sam Dean

ไม่เป็นไร Btw ปัจจุบัน TIO ของคุณยังคงเป็น 60 ไบต์แทนที่จะเป็น 58 และไม่แน่ใจว่าทำไมคุณได้ระบุไว้ 57. ลองออนไลน์
Kevin Cruijssen

@KevinCruijssen ฉันโพสต์ผิด TIO ต่อไป! TIO บอกว่า 58 ตอนนี้ แต่ฉันโพสต์ 55 เพราะคุณสามารถลบ "php" ออกจากแท็กเปิดได้ไม่ใช่ใน TIO
Sam Dean

@Wernisch ขอบคุณสำหรับสูตรของคุณ!
Sam Dean

3

R , 35 ไบต์

diffinv(rbind(n<-1:scan(),-1)[n-1])

ลองออนไลน์!

ฉันคิดว่านี่เป็นทางเลือกที่น่าสนใจสำหรับคำตอบของ @ JayCeเนื่องจากพอร์ตไม่ดีกับภาษามากนักหากไม่มีการสนับสนุนเมทริกซ์ในตัวและเกิดเป็นกอล์ฟขึ้นมา

1-indexed ส่งคืนnองค์ประกอบแรกของลำดับ

มันทำงานอย่างไร:

rbind(n<-1:scan(),-1) สร้างเมทริกซ์ต่อไปนี้:

     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]   -1   -1   -1   -1

เพราะ R ถือเมทริกซ์ตามลำดับคอลัมน์หลักถ้าเราต้องแปลงนี่เป็น a vectorเราก็จะได้เวกเตอร์

1 -1 2 -1 3 -1 4 -1

ซึ่งถ้าเราหาผลรวมสะสมเราจะได้

1 0 2 1 4 3 7 6

ซึ่งเป็นลำดับโดยไม่มีผู้นำ 0ซึ่งเป็นลำดับเพียงโดยไม่ต้องชั้นนำdiffinvโชคดีที่เพิ่มศูนย์นำหน้าดังนั้นเราจึงนำn-1ค่าแรกจากเมทริกซ์และค่าdiffinvนั้นมาเพื่อรับnค่าแรกของลำดับ


2
ฉันเป็นแฟนตัวยงของคำตอบ 'diffinv' ของคุณ
JayCe


3

R , 35 34 ไบต์

(u=(n=scan())-n%%2-1)-n+(15+u^2)/8

ลองออนไลน์!

ตัวเลือกการส่งออกครั้งแรกสูตรเหมือนกันกับคำตอบอื่น ๆ อีกมากมาย (ฉันอยากจะชี้ไปที่คำตอบแรกที่ให้สูตรฉันไม่สามารถคิดได้ว่ามันคืออะไร)

ตัวเลือกเอาต์พุตที่สองและสามด้านล่าง:

R , 43 ไบต์

function(m,n=1:m,u=n%%2+1)((n-u)^2-1)/8+2-u

ลองออนไลน์!

R , 51 ไบต์

while(T){cat(((T-(u=T%%2+1))^2-1)/8+2-u," ");T=T+1}

ลองออนไลน์!


3

Matlab / Octave, 31 26 ไบต์

5 ไบต์บันทึกขอบคุณไปที่ Luis Mendo!

@(n)sum(1:n/2+.5)-fix(n/2)

1
คุณสามารถใช้fixแทนfloorและn/2+.5แทนceil(n/2)
Luis Mendo

@LuisMendo Ty! ไม่ทราบfix()และไม่คาดหวังว่า1:n/2+.5จะทำงาน - มีหลายอย่างที่อาจผิดพลาดได้ แต่จริงๆแล้วพวกเขาไม่ทำ :)
Leander Moesinger




3

QBasic, 31 ไบต์

วิธีการแก้ปัญหาเพียงแค่ดำเนินการที่สเปคมาในเล็กน้อยนานกว่าวิธีการแก้ปัญหาของเอริค

DO
?n
i=i+1
n=n+i
?n
n=n-1
LOOP

เอาต์พุตนี้ไปเรื่อย ๆ สำหรับวัตถุประสงค์ของการทำงานผมขอแนะนำให้เปลี่ยนบรรทัดสุดท้ายเพื่อสิ่งที่ต้องการที่จะรอการกดแป้นหลังจากรายการลำดับทุกวินาทีและออกถ้าคีย์กดมีLOOP WHILE INPUT$(1) <> "q"q


2

C # (. NET Core) , 56 ไบต์

n=>{int a=0,i=0;for(;++i<n;)a+=i%2<1?-1:i/2+1;return a;}

-2 ไบต์ขอบคุณ Kevin Crujssen

ลองออนไลน์!

1 การจัดทำดัชนี ผลตอบแทนa(n)

Ungolf'd:

int f(int n)
{
    // a needs to be outside the for loop's scope,
    // and it's golfier to also define i here
    int a = 0, i = 1;
    // basic for loop, no initializer because we already defined i
    for (; ++i < n;)
    {
        if (i%2 < 1) {
            // if i is even, subtract 1
            a -= 1;
        }
        else
        {
            // if i is odd, add (i / 2) + 1
            // this lets us handle X without defining another int
            a += i / 2 + 1;
        }
    }
    // a is the number at index n
    return a;
}

1
i=1;for(;i<n;i++)สามารถi=0;for(;++i<n;)และสามารถi%2==0 i%2<1
Kevin Cruijssen

@KevinCruijssen ดังนั้นฉันทำได้ขอบคุณ! ฉันควรเห็นอันที่ 2 แต่ฉันไม่คิดว่าอันแรกจะทำงานได้เพราะฉันคิดว่าลูปตรวจสอบเงื่อนไขหลังจากลูปแรกเท่านั้น TIL
Skidsdev

ไม่มันตรวจสอบก่อนการวนซ้ำครั้งแรกแล้ว do-whileจะตรวจสอบหลังจากเสร็จสิ้นการซ้ำแรก :)
Kevin Cruijssen

ในบางกรณีที่หายากมากคุณสามารถรวมifกับfor-loop ตัวอย่างเช่นการif(t>0)for(i=0;i<l;i++) for(i=0;t>0&i<l;i++)ฉันแทบจะไม่สามารถใช้สิ่งนี้ในคำตอบของฉันได้
Kevin Cruijssen

ที่น่ากลัวมากฉันจะต้องจำไว้ในครั้งต่อไปที่ฉันทำ C # golfing ซึ่งค่อนข้างหายากวันนี้: P งาน C # ส่วนใหญ่ของฉันไม่ดีอย่างแน่นอน
Skidsdev

2

Husk , 11 9 8 ไบต์

ΘṁṠe→Θ∫N

บันทึกเป็นไบต์ด้วย H.PWiz
เอาต์พุตเป็นรายการที่ไม่มีที่สิ้นสุด
ลองออนไลน์!

คำอธิบาย

ΘṁṠe→Θ∫N
      ∫N   Cumulative sum of natural numbers (triangular numbers).
     Θ     Prepend 0.
 ṁṠe→      Concatenate [n + 1, n] for each.
Θ          Prepend 0.

2

Dodos , 69 ไบต์

	. w
w
	. h
	+ r . ' dab h '
h
	h ' '
	. dab
r
	
	r dip
.
	dot
'
	dip

ลองออนไลน์!


อย่างใดนี่คือคำตอบที่ยาวที่สุด

คำอธิบาย

┌────┬─────────────────────────────────────────────────┐
│Name│Function                                         │
├────┼─────────────────────────────────────────────────┤
│.   │Alias for "dot", computes the sum.               │
├────┼─────────────────────────────────────────────────┤
│'   │Alias for "dip".                                 │
├────┼─────────────────────────────────────────────────┤
│r   │Range from 0 to n, reversed.                     │
├────┼─────────────────────────────────────────────────┤
│h   │Halve - return (n mod 2) followed by (n/2) zeros.│
└────┴─────────────────────────────────────────────────┘

1

ถ่าน 15 ไบต์

I∨ΣEN⎇﹪ι²±¹⊕⊘ι⁰

ลองออนไลน์! 0 การจัดทำดัชนี การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด สูตรอาจจะสั้นลง แต่ความสนุกในนั้นคืออะไร? คำอธิบาย:

    N           Input as a number
   E            Map over implicit range
     ⎇          Ternary
      ﹪ι²       Current value modulo 2
         ±¹     If true (odd) then -1
           ⊕⊘ι  Otherwise calculate X as i/2+1
  Σ             Take the sum
 ∨            ⁰ If the sum is empty then use zero
I               Cast to string and implicitly print

1

JavaScript, 49 48 45 ไบต์

x=>eval('for(i=0,r=1;++i<x+2;)r+=i%2?-1:i/2')

ลองออนไลน์!

ไม่สวยเท่าคำตอบ @tsh แต่ฉันทำงานเพื่อจำนวนที่มากขึ้น

และตอนนี้ขอบคุณ @tsh สำหรับการevalแก้ปัญหา!


<=x+1สามารถ<x+2
Kevin Cruijssen

x=>eval('for(i=0,r=1;++i<x+2;)r+=i%2?-1:i/2')ควรสั้นกว่านี้
tsh

ไม่evalคืนค่าปรับปรุงครั้งสุดท้าย? ฉันยังไม่เข้าใจในสิ่งที่สามารถทำได้
คนที่แต่งตัวประหลาดแบบสุ่ม

มันคืนค่าของคำสั่ง (ซึ่งอาจครอบคลุมในdoคำสั่งในรุ่นที่ใหม่กว่า)
tsh

1

Befunge 93, 26 bytes

<v0p030
 >:.130g+:30p+:.1-

ทำงานแบบไม่มีกำหนดเวลา
ลองออนไลน์แม้ว่าเอาท์พุทจะค่อนข้างเล็กและกลับลงมาหลังจาก x = 256 ซึ่งน่าจะเป็นไปได้ว่า TIO ไม่สามารถจัดการกับอักขระที่อยู่เหนือ U + 256 ทำงานได้ดีที่https://www.bedroomlan.org/tools/befunge-playground (Chrome เท่านั้นโชคไม่ดีเมื่อใช้ Firefox จะมีการปิดรับสายที่รันไทม์ด้วยเหตุผลบางประการ ... )



1

Pyth , 8 ไบต์

s<s,R_1S

ส่งคืนnหมายเลข th ตามลำดับคือ 0 จัดทำดัชนี ลองออนไลน์

คำอธิบายพร้อมด้วยตัวอย่างสำหรับn=5:

s<s,R_1SQQ   Final 2 Q's are implicit, Q=eval(input())

       SQ    1-indexed range        [1,2,3,4,5]
   ,R_1      Map each to [n,-1]     [[1,-1],[2,-1],[3,-1],[4,-1],[5,-1]]
  s          Sum (Flatten)          [1,-1,2,-1,3,-1,4,-1,5,-1]
 <       Q   Take 1st Q             [1,-1,2,-1,3]
s            Sum, implicit output   4

1

Perl 6 ,  38  26 ไบต์

{(0,{$_+(($+^=1)??++$ !!-1)}...*)[$_]}

ลองมัน

{(+^-$_+|1)**2 div 8+$_%2}

ขึ้นอยู่กับการวิศวกรรมย้อนกลับ TFeld ของคำตอบหลาม
ลองมัน

ขยาย

38 ไบต์ (ตัวสร้างลำดับ):

{  # bare block lambda with implicit parameter $_

  (
    # generate a new sequence everytime this function is called

    0,    # seed the sequence

    {     # bare block that is used to generate the rest of the values

      $_  # parameter to this inner block (previous value)

      +

      (
          # a statement that switches between (0,1) each time it is run
          ( $ +^= 1 )

        ??     # when it is 1 (truish)
          # a statement that increments each time it is run
          ++$ # &prefix:« ++ »( state $foo )

        !!     # or else subtract 1
          -1
      )
    }

    ...  # keep generating until:

    *    # never stop

  )[ $_ ] # index into the sequence
}

โปรดทราบว่านี่มีประโยชน์ที่คุณสามารถส่งผ่าน *เพื่อรับลำดับทั้งหมดหรือส่งในช่วงเพื่อสร้างหลายค่าได้อย่างมีประสิทธิภาพยิ่งขึ้น

26 ไบต์ (การคำนวณโดยตรง):

{  # bare block lambda with implicit parameter $_

  (

    +^     # numeric binary negate
      -$_  # negative of the input
      +|   # numeric binary or
      1

  ) ** 2   # to the power of 2

  div 8     # integer divide it by 8

  + $_ % 2  # add one if it is odd
}

1

05AB1E , 8 ไบต์

;L¨O>¹É-

ลองออนไลน์!

ตามวิธี Jelly Jelly ของโจนาธานอัลลัน (ซึ่งอาจขึ้นอยู่กับการแก้ไข OP คำถามด้วยคำจำกัดความอื่นของลำดับ) ดังนั้นดัชนี 1 รายการ


+1 ฉันมีวิธีการคล้ายกันที่เตรียมไว้ใน 05AB1E ซึ่งฉันวางแผนที่จะโพสต์ในอีกสองสามวันหากไม่มีใครโพสต์ไว้ มันแตกต่างกันเล็กน้อย (ฉันลดครึ่งแรกก่อนที่จะสร้างรายการแทนที่จะลบหางและฉันใช้Iแทน¹) แต่วิธีการทั่วไปและการนับไบต์เหมือนกันทั้งหมด:;<LO>IÉ-
Kevin Cruijssen

@KevinCruijssen จะโพสต์เมื่อวานนี้ถ้าฉันมีความสามารถในการคิดอย่างลึกซึ้งยิ่งขึ้น แต่นี่เป็นช่วงเวลาการแข่งขันรอบชิงชนะเลิศการคิดอย่างลึกซึ้งเกี่ยวกับเรื่องนี้เป็นสิ่งต้องห้าม : P
Erik the Outgolfer

อาฉันดีใจที่ฉันไม่มีรอบชิงชนะเลิศอีกต่อไป ฉันค่อนข้างยุ่งในที่ทำงานเช่นกันและต้องเลื่อนโค้ดกอล์ฟบางครั้งบ่อยกว่าที่ฉันต้องการ ขอให้โชคดีกับการสอบของคุณ!
Kevin Cruijssen

1

นูน , 10 9 ไบต์

_½,ª)\2%-

ลองออนไลน์!

ตามวิธี Jelly Jelly ของโจนาธานอัลลัน (ซึ่งอาจขึ้นอยู่กับการแก้ไข OP คำถามด้วยคำจำกัดความอื่นของลำดับ) 1 การจัดทำดัชนี

คำอธิบาย:

_½,ª)\2%- Stack: [A]
_         Duplicate. Stack: [A A]
 ½        Halve. Stack: [A [A]½]
  ,       Range, [0..⌊N⌋). Stack: [A [[A]½],]
   ª      Sum. Stack: [A [[A]½],]ª]
    )     Increment. Stack: [A [[[A]½],]ª])]
     \    Swap. Stack: [[[[A]½],]ª]) A]
      2   2. Stack: [[[[A]½],]ª]) A 2]
       %  Modulo. Stack: [[[[A]½],]ª]) [A 2]%]
        - Minus. Stack: [[[[[A]½],]ª]) [A 2]%]-]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.