กรณีที่อยากรู้อยากเห็นของ Steve Ballmer


46

Steve Ballmer เป็นอดีตซีอีโอของ Microsoft และในบทความล่าสุดอ้างว่าเขา "ยังไม่ทราบว่าเขาทำอะไรผิดกับมือถือ"

ตามที่จดหมายข่าวของCodeProjectชี้ให้เห็น "ชื่อของบทความนั้นอาจจบลงได้หลายจุดและยังคงถูกต้อง"

เมื่อไม่มีอินพุตให้เอาต์พุตต่อไปนี้:

Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.

สิ่งนี้จะต้องถูกเอาท์พุทตรงตามที่แสดงและจะต้องเป็นผลลัพธ์ของโปรแกรมของคุณเท่านั้น คุณอาจรวมบรรทัดใหม่ต่อท้ายหนึ่งบรรทัด

นี่คือจำนวนน้อยที่สุดในแต่ละภาษาที่ชนะ


59
เมื่อผมได้เห็นชื่อ / แท็กผมคิดว่าการส่งออกจะเป็นdevelopers developers ...
ร็อด

15
tcl, 25 - while 1 {puts developers}- demo
sergiol

8
braingolf, 23 - 1"developers "[!@11 1>]: P
Skidsdev

16
และฉันคิดว่าBallmer Peak
ojdo

5
ใช่ 14 -yes developers
sergiol

คำตอบ:



17

Haskell, 96 ไบต์

(++".\n")=<<scanl(++)"Steve Ballmer still does not know"[" what he did"," wrong"," with mobile"]

ลองออนไลน์!

scanlคล้ายกับfoldl(หรือลดตามที่ถูกเรียกในภาษาอื่น ๆ ) ยกเว้นว่าจะส่งคืนรายการผลลัพธ์ระดับกลางทั้งหมดแทนที่จะเป็นเพียงผลลัพธ์สุดท้าย ผลลัพธ์ระดับกลางแต่ละรายการจะถูกผนวกเข้าด้วย".\n"และผลลัพธ์ทั้งหมดจะถูกต่อกันเป็นสตริงเดียว


17

05AB1E , 50 49 45 44 ไบต์

4 ไบต์บันทึกด้วยแรงบันดาลใจจากคำตอบ Java ของ Kevin

„€Ž†©'–Ñ…€À€½ƒ§“mer„â‚à€–ƒ€“”™¸ïß”[Žì'.«=¨ð«

ลองออนไลน์!

คำอธิบาย

„€Ž†©                                         # push "with mobile"
     '–Ñ                                      # push "wrong"
        …€À€½ƒ§                               # push "what he did"
               “mer„â‚à€–ƒ€“                  # push "mer still does not know"
                            ”™¸ïß”            # push "Steve Ball"
                                  [Ž          # loop until stack is empty
                                    ì         # prepend the top string to the 2nd top string
                                     '.«      # append a dot
                                        =     # print without popping
                                         ¨    # remove the dot
                                          ð«  # append a space

โอ้ดีจัดการการบีบอัดพจนานุกรมสำหรับทุกอย่าง แต่Ballmer?
Skidsdev

@Mayube: ใช่ ผมได้รับมันในขณะนี้บางส่วน (บอล) เพื่อบันทึกไบต์โดยการปรับโครงสร้างสายเดิม :)
Emigna

ดูดีขึ้นมากตอนนี้ถ้าเพียงคุณเท่านั้นที่สามารถบีบอัดได้mer
Skidsdev

@Mayube: ฉันสามารถซ่อนได้โดยการบีบอัดmeแต่น่าเสียดายที่จะไม่บันทึกไบต์ใด ๆ : /
Emigna

2
@StigHemmer: เป็น 44 ไบต์ในหน้ารหัส
05AB1E

15

เรติน่า , 82 75 ไบต์

ขอบคุณ Neil สำหรับการบันทึก 7 ไบต์

จำนวนไบต์ถือว่าการเข้ารหัส ISO 8859-1


Steve Ballmer still does not know what he did wrong with mobile.
 w
.¶$`$&

ลองออนไลน์!

คำอธิบาย


Steve Ballmer still does not know what he did wrong with mobile.

เริ่มต้นสายอักขระการทำงานกับพาดหัวแบบเต็ม

 w
.¶$`$&

เป็นแหลมออกโดยนีลทั้งสาม truncations จะทำก่อนคำที่ขึ้นต้นด้วยwและไม่มีคำอื่น ๆ wที่เริ่มต้นด้วย ดังนั้นเราจึงจับคู่ช่องว่างตามด้วย a wเพื่อค้นหาจุดตัด ณ จุดเหล่านี้เราใส่สิ่งต่อไปนี้:

  • จุดและตัวป้อนบรรทัดเพื่อตัดประโยคและเริ่มต้นตัวใหม่
  • $`สตริงทั้งหมดที่อยู่ด้านหน้าของการแข่งขันเพื่อให้ประโยคถัดไปเริ่มต้นจากจุดเริ่มต้น
  • $&พื้นที่และwอีกครั้งเพื่อให้พวกเขายังเป็นส่วนหนึ่งของประโยคถัดไป

เราไม่จำเป็นต้องจับคู่mobileอย่างชัดเจนเพราะนั่นจะเป็นสิ่งที่เหลืออยู่ในนัดที่สาม


3
คุณจะต้องจับคู่ใน <space> และแทนที่ด้วย.¶$`$&เท่านั้น
Neil

@ Neil โอ้เรียบร้อยดีจริงๆขอบคุณ :)
Martin Ender


8

/// , 88 ไบต์

บันทึก 8 ไบต์โดย @MartinEnder!

/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong/1.
2.
3.
3 with mobile.

ลองออนไลน์!


1
คุณสามารถประหยัดได้มากขึ้นโดยการย้ายคำนำหน้าก่อนหน้าไปยังการทดแทนแต่ละรายการ: tio.run/…
Martin Ender

@MartinEnder นั่นฉลาดเป็นพิเศษ ขอบคุณ!
steenbergh

1
โอ้และอีก 5 คนโดยทิ้ง4ทั้งหมด: tio.run/##DcLRDcMgDAXA/ …
Martin Ender

5
@MartinEnder "ใช่ฉันจะมีหมายเลข 3 พร้อมโทรศัพท์มือถือโปรด"
steenbergh

7

05AB1E , 46 ไบต์

”™¸ïßme”“r„â‚à€–ƒ€“«…€À€½ƒ§'–Ñ„€Ž†©).pvyðý'.«»

ลองออนไลน์!


นี่คือ 98 ไบต์ด้วยการนับของฉัน
เฮมเมอร์

@StigHemmer 05AB1E ใช้โค้ดเพจของตัวเองที่มีขนาด 256 ไบต์ซึ่งเข้ารหัสอักขระแต่ละตัวเป็นไบต์เดียว ดังนั้นขนาด 46 ไบต์ถึงแม้ว่าจะมีจำนวนมากในการเข้ารหัส UTF-8 พื้นฐาน
Kevin Cruijssen

7

Java 8, 127 126 ไบต์

()->{String t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile.";}

-1 ไบต์ขอบคุณที่@KonstantinCh

ลองที่นี่


1
หวังว่าคุณจะไม่รังเกียจที่ฉันจะขโมยความคิดของคุณมันจะดีกว่าวิธีการวนลูปของฉัน
TheLethalCoder

@TheLethalCoder ไม่มีปัญหาเลยเพราะฉันเห็นว่าคุณให้เครดิตกับฉัน :) Btw stringคุณไม่สามารถvarอยู่ใน C # lambda ของคุณได้หรือ
Kevin Cruijssen

ไม่เพราะฉันประกาศหลายรายการพร้อมกัน
TheLethalCoder

@TheLethalCoder อ่าแน่นอนฉันแย่ .. และ()=>{var t="Steve Ballmer still does not know";return t+".\n"+(t+=" what he did")+".\n"+(t+=" wrong")+".\n"+t+" with mobile"+".";};น่าเสียดายอีกสามไบต์
Kevin Cruijssen

1
Konstantin Chแนะนำให้เปลี่ยน"+dท้าย."เพื่อบันทึกไบต์เนื่องจาก linefeed สุดท้ายเป็นทางเลือก
Martin Ender


6

เจลลี่ , 52 46 ไบต์

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»;\p”.Y

สินเชื่อสำหรับṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓการเดินทางไป @EriktheOutgolfer ที่ใช้ในคำตอบของเขา

ลองออนไลน์!

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

ส่วนแบ่งการทำงานของสิงโตทำได้โดยการบีบอัดพจนานุกรมของ Jelly ที่นี่

ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ

ถอดรหัส

Steve| Ball|mer| still| do|es| no|t| know

มี|บ่งชี้เขตแดนระหว่างคำว่าที่เรียกจากพจนานุกรมและสตริงที่ถูกเข้ารหัสตัวอักษรโดยตัวอักษร ( mer, esและt)

ในทำนองเดียวกัน£Ṿ⁴'Þḣ~ẉถอดรหัส what| he| did(น่าแปลกใจที่heไม่ได้มาจากพจนานุกรม) ¥Ị)เข้ารหัส wrongและถอดรหัสṠ8gÐ/ with| mobile

“ṬċḌ)⁹œḃṣ⁷Ṅḋ%W3Œƭ;ḷẓ“£Ṿ⁴'Þḣ~ẉ“¥Ị)“Ṡ8gÐ/»

จึงให้ผลเป็นอาร์เรย์สตริง

“Steve Ballmer still does not know“ what he did“ wrong“ with mobile”

;\ ลดการสะสมโดยการต่อกันสร้างวลีในแต่ละบรรทัด

ในที่สุดp”.คำนวณผลิตภัณฑ์คาร์ทีเซียนของวลีเหล่านี้และตัวละครจุดและYแยกประโยคที่เกิดจาก linefeeds


โดยการนับของฉันนี้คือ 97 ไบต์
เฮมเมอร์

@StigHemmer ใน UTF-8 มันจะเป็น แต่วุ้นยังสนับสนุนชุดนี้ตัวเดียวไบต์
Dennis

6

JavaScript (ES6), 102 ไบต์

_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`

ลองมัน

o.innerText=(
_=>(s="Steve Ballmer still does not know")+`.
${s+=" what he did"}.
${s+=" wrong"}.
${s} with mobile.`
)()
<pre id=o>


วิธีการที่ดีฉันได้ "ยืม" สำหรับคำตอบ C # ของฉัน
TheLethalCoder

1
บางทีฉันอาจไม่เข้าใจกฎของเกม แต่ฟังก์ชั่นนี้ทำงานได้อย่างถูกต้องหากคุณอยู่ในเบราว์เซอร์และใช้แท็กก่อนหน้านี้อย่างที่คุณทำ ดังนั้นมันจึงไม่เกิน 102 ไบต์เนื่องจากมันขึ้นอยู่กับ o.innerText = และ <pre id = "o"> และได้รับการดูแลองค์ประกอบจริงๆ
Paul

@ พอลฉันรู้ว่ามันเก่า แต่ฟังก์ชั่นที่ไม่ระบุชื่อเป็นรูปแบบที่ยอมรับได้ของ I / O เป็นรายการดังนั้นตราบใดที่มันคืนค่าข้อมูลที่คาดไว้ก็ไม่จำเป็นต้องแสดงโดยตรง
Dom Hastings


4

เรติน่า , 95 86 ไบต์

:`
Steve Ballmer still does not know.
:`.$
 what he did.
:`.$
 wrong.
.$
 with mobile.

ลองออนไลน์! แก้ไข: บันทึก 9 ไบต์โดยเปลี่ยนจากการแสดงผลส่วนของสตริงทั้งหมดเป็นการสร้างสตริงเป็นชิ้น ๆ :`เป็นสิ่งจำเป็นในสามขั้นตอนแรกที่จะทำให้การส่งออกพวกเขา


โอที่ฉลาดลบทุกอย่างระหว่างwและeแล้วลบทุกอย่างระหว่างwrและeแล้วและwi eไม่ใช่ Super Golfy เนื่องจาก newline-iness ของ Retina แต่ก็เท่ห์อย่างแน่นอน
Skidsdev

@Mayube กลายเป็นว่าไม่ค่อยเล่นกอล์ฟเลยดังนั้นฉันจึงเปลี่ยนวิธีการ (ยังไม่เจ๋งเท่าคำตอบของ Martin Ender)
Neil

3

C #, 158 128 120 114 ไบต์

()=>{var s="Steve Ballmer still does not know";return s+$@".
{s+=" what he did"}.
{s+=" wrong"}.
 with mobile.";};

บันทึก 30 ไบต์ด้วย @KevinCruijssen
บันทึกแล้ว 6 ไบต์ขอบคุณ @Shaggy


เวอร์ชันที่ใช้การรวมสตริงย่อย 120 ไบต์:

s=n=>"Steve Ballmer still does not know what he did wrong with mobile".Substring(0,n)+".\n";()=>s(33)+s(45)+s(51)+s(63);

เวอร์ชันที่ยืมจาก @KevinCruijssen เป็นเวลา 128 ไบต์:

()=>{string t="Steve Ballmer still does not know",d=".\n";return t+d+(t+=" what he did")+d+(t+=" wrong")+d+t+" with mobile"+d;};

เวอร์ชันที่ใช้การวนซ้ำ 158 ไบต์:

()=>{var r="";for(int i=0;++i<5;)r+=$"Steve Ballmer still does not know{(i>1?$" what he did{(i>2?$" wrong{(i>3?" with mobile":"")}":"")}":"")}.\n";return r;};

วิธีง่ายๆในการใช้คำสั่งที่ประกอบไปด้วยในวงเพื่อผนวกส่วนใหม่ไปยังสตริงในแต่ละครั้ง


นอกจากนี้มันควรค่าแก่การสังเกตว่าสิ่งนี้ใช้ได้C# >= 6กับรุ่นก่อนหน้าเท่านั้นที่ไม่มีสตริงการแก้ไข
Skidsdev

@Mayube True แต่ฉันเล่นกอล์ฟนี้เพื่อใช้วิธีการของ Kevin ในขณะนี้ซึ่งดีกว่าของฉันฮ่าฮ่า
TheLethalCoder

ต้องตีกอล์ฟอีก 2 ไบต์เพื่อให้คุณสามารถเอาชนะคำตอบจาวา D:
Skidsdev

@Mayube คำตอบของจาวามักจะชนะ C # เพราะมันไม่ได้รวมเครื่องหมายเซมิโคลอนท้าย น่ารำคาญอยู่เสมอ!
TheLethalCoder

@Mayube ทำอย่างนั้นตอนนี้อย่างน้อย ...
TheLethalCoder


3

เป็นกลุ่ม 79 การกดแป้น

iSteve Ballmer still does not know.<CR><C-x><C-l><Backspace> what he did.<CR><C-x><C-l><Backspace> wrong.<CR><C-x><C-l><Left> with mobile

<C-x><C-l>เติมข้อมูลอัตโนมัติด้วยบรรทัดก่อนหน้า หรือคุณสามารถแทนที่ทุกสิ่งที่เกิดขึ้น<CR><C-x><C-l>ด้วย<Esc>o<C-a>



3

Ruby, 94 ไบต์

"!-3Z".bytes{|i|puts"Steve Ballmer still does not know what he did wrong with mobile"[0,i]+?.}

วนซ้ำอักขระ 4 ตัวในสตริงแรกแปลงแต่ละค่าเป็น ascii nและส่งออกnอักขระแรกของสตริงที่สองในแต่ละครั้ง มันไม่สำคัญว่าอักขระตัวสุดท้ายของสตริงแรกคืออะไรตราบใดที่ค่า ascii ของมันมีค่าเท่ากันหรือมากกว่าความยาวของสตริงที่สอง


3

ฟิชชัน, 299 291 269 ​​ไบต์

MN"."                             ]              ]        ]
                                  W$]            W$$]     W$$$]
R"Steve Ballmer still does not know"%[" what he did"%[" wrong"%[" with mobile.";
                                    [W              [W        [W

ลองออนไลน์!

ในที่สุดฉันก็เข้าใจภาษา 2D!

คำอธิบาย

โปรแกรมวางไข่อะตอมที่มี 1 มวลและ 0 พลังงาน ( 1:0อะตอม) ที่Rบรรทัดที่ 3 และเริ่มเคลื่อนที่ไปทางขวา

"Steve Ballmer still does not know" พิมพ์อักขระแต่ละตัว

% เลื่อนอะตอมขึ้นหากมีพลังงาน 0 หรือลดลงเป็นพลังงานและเคลื่อนลง

]ย้ายอะตอมไปทางซ้าย$เพิ่มพลังงานของอะตอมWเลื่อนอะตอมขึ้น

เมื่ออะตอมอยู่บนแถวบนมันจะเลื่อนไปทางซ้ายจนกว่าจะถึง"."ซึ่งจะพิมพ์จุดNซึ่งพิมพ์บรรทัดใหม่และในที่สุดMซึ่งจะย้ายอะตอมลงไปRอีกครั้งซึ่งจะย้ายอะตอมไปทางขวา .

แต่ละวงจะมีพลังงานของอะตอมสูงกว่าหนึ่งวงซึ่งหมายความว่ามันจะผ่านอีกหนึ่ง%วง หลังจากลูปที่ 4 มันมาถึง;ตอนท้ายของบรรทัดที่สามซึ่งทำลายอะตอม โปรแกรมจะหยุดทำงานเมื่ออะตอมทั้งหมดถูกทำลาย


คุณสามารถเพิ่มคำอธิบายได้ไหม?
Shaggy

@Shaggy จะทำ
Skidsdev

ท่านสามารถบีบมากเป็นอันดับต้น ๆ เพิ่มเติมได้ที่: 209 ไบต์
KSmarts

3

Japt , 70 68 65 61 60 59 ไบต์

มีอักขระบางตัวที่ไม่แสดงที่นี่ ตามลิงค์ด้านล่างเพื่อดูรหัสเต็ม

`Sve Ba¥´r Ð]l º not know
 Ø  ¹d
 Ùg
 ØP ¶ßè`£'.iP±X}R

ลองออนไลน์

  • 3 4 ไบต์บันทึกด้วยETHและอีก 4 ด้วยการกระตุ้นบางอย่าง

คำอธิบาย

ทุกอย่างระหว่าง 2 backticks เป็นสตริงที่ถูกบีบอัดดังต่อไปนี้:

Steve Ballmer still does not know
 what he did
 wrong
 with mobile
`...`             :Decompress the string.
     £       }R   :Map over the each line X in the string
         P±X      :   Append X to P (initially the empty string)
      '.i         :   Prepend that to the string "."

1
ดี คุณสามารถบันทึกไบต์ได้โดยทำ[`Sve Ba¥´r Ð]l º not know`` Ø ¹d`` Ùg`` ØP ¶ßè.`]m@P+=X}แล้วเพิ่มอีกสองไบต์ที่เกี่ยวข้องกับการลบ[และ](ฉันจะให้คุณหาอันนั้น)
ETHproductions

เป็นคนที่ดี @ ETHproductions เอาฉันสองสามนาทีเพื่อถอดรหัสว่าระหว่างการบีบอัดและตัวละคร SE ไม่แสดง แต่ฉันไปถึงที่นั่นและตอนนี้ฉันคิดว่าฉันเห็นการประหยัดอื่นที่คุณกำลังบอกใบ้ด้วย
Shaggy

1
คุณอาจจะดีกว่าถ้าคุณถอดการแยกและการเข้าร่วมและทำแทน£P±X +'.}Rในตอนท้าย
ETHproductions

@ ETHproductions มันยังคงอยู่ที่ 61 bytes แต่มันก็ค่อนข้าง neater; กำจัดความจำเป็นในการขึ้นบรรทัดใหม่ แก้ไข: โอ้รอไม่ฉันสามารถบันทึก 1 ไบต์ด้วยวิธีการที่ :)
ปุย



2

SOGL , 42 ไบต์

⁹⁴<>‘υG‘Γω/w¹‘O‛Æw▓½0H(æ█◄K∆2Ξgh‘4{Tļ.@+;+

คำอธิบาย:

..‘                    push "with mobile"
   ..‘                 push "wrong"
      ..‘              push "what he did"
         ..‘           push "Steve Ballmer still does not know"
            4{         4 times do
              T          output, not popping the top of stack
               ļ.        output "."
                 @+      append a space to the top thing in stack
                   ;+    reverse add (adding the next part to the top thing in stack)

คุณใช้ SOGL อย่างไร ฉันได้ติดตั้งการประมวลผลและทุกเวอร์ชันแล้ว แต่ฉันไม่สามารถทราบได้ว่าคุณจะรันอย่างไร
Erik the Outgolfer

เปิด "P5Parser" โดยไม่มีป้ายกำกับเวอร์ชันและในโฟลเดอร์จะdata/p.soglวางรหัส จากนั้นรันโค้ดการประมวลผลควรรันและเอาต์พุตควรอยู่ในคอนโซล
dzaima

พยายามเรียกใช้รหัสของคุณ แต่ไม่มีผลลัพธ์ใด ๆ ..../processing-java --sketch=../SOGL/P5Parser --run p.sogl ""
Erik the Outgolfer

มันใช้งานได้สำหรับฉัน p.soglลองให้มันเส้นทางแบบเต็มแทน ถ้าไม่มีอะไรใน STDOUT หรือP5Parser/output.txtฉันไม่รู้
dzaima

นี่คือผลลัพธ์สำหรับฉันแยกออกเป็น STDOUT และ STDERR
Erik the Outgolfer



2

นิมิต , 100 ไบต์

for i in " ,2>":echo "Steve Ballmer still does not know what he did wrong with mobile"[0..i.int],"."

ที่นี่เหมือนกันในรหัสที่อ่านได้มากขึ้น:

const str = "Steve Ballmer still does not know what he did wrong with mobile"

for i in [32, 44, 50, 62]:
  echo(str[0..i], ".")

ภาษานี้มีการแบ่งสตริงและขอบเขตบนรวม ส่วนที่เหลือควรอธิบายตัวเองหากคุณรู้จักการเขียนโปรแกรม


1

ถ่าน , 71 69 ไบต์

A⟦⟧βF⪪”↓/‘ZQ≔'Wε}÷&’/↗∧μ~⎇²~ηρπ‖¢β\`σuσI⌀δ#″:§▶¬QγγQZ–” w⁺⪫⊞Oβι w¦.¶

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชัน verbose โดยที่ตัวคั่นบางตัวถูกตัดออกเนื่องจาก deverbosifier ไม่สามารถทำได้โดยอัตโนมัติ นี่เป็นคำตอบของ @ KevinCruijssen


1

> <> , 135 ไบต์

".wonk ton seod llits remllaB evetS"\
l?!\o99+2*1./"h tahw  "32p10pao     \
52p\".did e"/"   "53p33p
  /\".gnorw"/
1p/\".elibom htiw;"3

โดยทั่วไปแล้วจะต้องผ่านสตริงพิมพ์จากนั้นแทนที่ fullstop และ conditionals ด้วยช่องว่างเพื่อให้เคลื่อนที่ไปตามโค้ด

อาจเป็นการดีที่สุดที่จะเห็นภาพโดยใช้ลิงก์ด้านล่าง> <> บ่อเชื่อมโยง

> <> บ่อน้ำ!

ลองออนไลน์!


1
มันไม่เคยเกิดขึ้นกับผมว่าข้างหลังสะกดเป็นknow wonk
Digital Trauma

8
@DigitalTrauma เอาล่ะตอนนี้คุณไม่ต้องรอ
ETHproductions


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