10 9 8 7 6 5 4 3 2 1 …พิมพ์ 2016


12

ในฐานะที่เป็นสปินออกไปความท้าทายของฉันมากกว่าที่งง2016เป้าหมายของคุณคือการส่งออก

กฎ:

  • คุณต้องรวมหมายเลข10 9 8 7 6 5 4 3 2 1ในลำดับนั้น พวกเขาสามารถใช้เป็นจำนวนเต็มของแต่ละบุคคลหรือตัดแบ่งกัน (เช่น1098) แต่10อาจไม่สามารถแยกออกเป็น1และ0- ไม่มีตัวอักษร (s) อาจจะอยู่ระหว่างตัวเลข โปรดทราบว่าในบางภาษา10อาจไม่ได้เป็นตัวแทนของตัวอักษรจำนวนเต็ม10ซึ่งเป็นที่ยอมรับได้จริง
  • รหัสของคุณจะต้องไม่มีตัวเลขอื่น ๆ หรือตัวแปรตัวเลขที่กำหนดไว้ล่วงหน้าหรือค่าคงที่ (ดังนั้นTใน Pyth ไม่ได้รับอนุญาตเนื่องจากเป็นค่าคงที่ตัวเลข)
  • คุณต้องคำนวณ 2016โดยใช้ตัวเลข เพียงแค่เอาท์พุท2016โดยไม่ต้องดำเนินการใด ๆ กับตัวเลขที่ต้องการ (ตัวอย่างเช่นโดยการถอดรหัสสตริงที่เข้ารหัสซึ่งประกอบด้วยอักขระที่เป็นตัวอักษรเท่านั้น) ไม่ได้รับอนุญาต ไม่อนุญาตให้ส่งออกเป็น2016ชิ้น (เช่น20จากนั้น16) 2016คุณต้องมีเอาท์พุทเดียวประกอบด้วยค่าตัวเลข
  • คำตอบที่ถูกต้องซึ่งมีจำนวนไบต์น้อยที่สุดเป็นผู้ชนะ

3
@nicael ฉันค่อนข้างแน่ใจว่าการแก้ปริศนาได้ทำไปแล้ว เรามี "ตัวดำเนินการแทรกเพื่อแก้ไขสมการ" เหล่านี้หลายอย่าง แต่พวกเขายากที่จะค้นหา
Martin Ender

1
การแก้ไขก่อนหน้า (2) น่าสนใจยิ่งขึ้น ใหม่เป็นเพียงการพิมพ์สตริงการคำนวณที่ถูกสร้างขึ้นมาแล้วในคำถามของคุณทำให้งง ...
nicael

1
เพียงไม่กี่คำถามขึ้นอยู่กับสิ่งที่ฉันเห็นในปัจจุบันคำถาม: 1) เราสามารถคำนวณ20และ16และพิมพ์หนึ่งหลังจากที่อื่น ๆ หรือไม่จำนวนจำเป็นต้องคำนวณให้เป็น 2016 ก่อนที่จะพิมพ์? 2) ฟังก์ชั่นอนุญาตหรือไม่ 3) การต่อเลขตัวอักษรอนุญาตหรือไม่ เช่น1098(ฉันสมมติว่าใช่โดยความคิดเห็นก่อนหน้า แต่เพื่อยืนยัน) 4) "คำนวณ 2016 โดยใช้จำนวนเต็ม" หมายความว่าเราไม่สามารถลอยได้ทุกที่ในขั้นตอนกลางหรือไม่? เช่นฉันสามารถรากที่สองจำนวนและปัดเศษ?
Sp3000

1
5) จะเกิดอะไรขึ้นถ้าฉันมีภาษาที่ "10" ไม่ได้รับการปฏิบัติเหมือนเป็นเลขสิบ แต่จะเป็นภาษาที่ตามด้วยศูนย์และไม่มีทางรอบ ๆ มัน? ภาษาดังกล่าวขาดคุณสมบัติหรือไม่? (ภาษาตัวอย่าง: Befunge) 6) เราสามารถใช้ตัวแปรตัวเลขที่กำหนดไว้ล่วงหน้าแทน 10 ได้T987654321หรือไม่?
Sp3000

@ Sp3000 1 หมายเลข 2 หมายเลข 3 ใช่ 4 โฟลตนั้นโอเคตราบใดที่คุณไม่ทำผิดกฎอื่น ๆ 10จะต้องรวม5 ดังนั้นคุณจะต้องจัดการกับมันอย่างใด 6 ตราบใดที่ปรากฏขึ้นก่อน10 T
rybo111

คำตอบ:



8

Hexagony, 61 ไบต์

ไม่ใช่ว่าจะชนะ แต่ฉันแค่อยากจะท้าทายใน Hexagony

วิธีนี้ใช้วิธีที่แตกต่างจากคำตอบอื่น ๆ (แย่กว่านั้น) ต้องใช้ปัจจัยบางส่วนของปี 2559 (2,3,6,7,8) และคูณพวกเขาทั้งหมดเข้าด้วยกัน

minified:

\109.8/7}_=\"6<}{>...$_5_4/*!@...../}3.."2\/="*=}<*...$1>"*"/

Unminified:

    \ 1 0 9 .
   8 / 7 } _ =
  \ " 6 < } { >
 . . . $ _ 5 _ 4
/ * ! @ . . . . .
 / } 3 . . " 2 \
  / = " * = } <
   * . . . $ 1
    > " * " /

คำอธิบายในเร็ว ๆ นี้;


5
" คำอธิบายกำลังจะมาเร็ว ๆ นี้ " ฉันคิดว่าเรามีความเข้าใจที่แตกต่างกันในเรื่อง 'เร็ว ๆ นี้' ; P
Kevin Cruijssen

1
@KevinCruijssen อ๊ะฉันลืมเรื่องนี้ไปหมดแล้ว ... และตอนนี้ฉันไม่เข้าใจวิธีการทำงานอีกต่อไป ยิ่งใหญ่
Blue


4

TI-BASIC, 17 15 ไบต์

int(109876/54-√(321

วิธีนี้ใช้วิธีของ @ nicael

17 ไบต์:

10+9*8-7+654*3-21

โซลูชันนี้จาก Puzzling สามารถแปลโดยตรงเป็น TI-BASIC


1
ยังมีผลบังคับใช้ในJaptéและอาจมีบางคนอื่น ๆ
ETHproductions

1
ยังใช้งานได้ใน PowerShell และ Mathematica (Wolfram) และฉันจะจินตนาการถึงสิ่งอื่น ๆ อีกมากมาย และอาจใช้ได้อีกหลายสิบครั้งด้วยการดัดแปลงเล็กน้อย
AdmBorkBork

วิธีการพูดได้หลายภาษาที่น่ารัก
TanMath

หากคุณต้องการใช้ภาษาอื่นฉันจะลบวิกิชุมชนของฉัน
Addison Crump

3

Japtap, 17 16 ไบต์

Â(109876/54-321q

ฉันเกลียดสิ่งนี้ 17. อาจจะหาทางแก้ไขอื่น YAYZ

คำอธิบาย:

  • 321q คือรากที่สองของ 321
  • ~~ จำนวนชั้น

ลองออนไลน์!


Â== ~~:-)
ETHproductions

109876/54-321¬fคือ 15 :-D
ETHproductions

@Eth แต่ f ไม่ทำงานใช่ไหม
nicael

มันควรได้รับการแก้ไข แต่ล่ามไม่ได้รับการบำรุงรักษาในขณะนี้ฉันจะสำรองข้อมูลทันที
ETHproductions

109876/54-321q)fตอนนี้ใช้งานได้ ข้อเสนอแนะอื่นไม่ได้
ETHproductions



2

Haskell, 31 ไบต์

[10,9*8*7+const 6 5..]!!4+3*2*1

ไม่สั้นที่สุด10+9*8-7+654*3-21อย่างที่เห็นในคำตอบอื่น ๆ ที่ทำงานใน Haskell ด้วย แต่สิ่งที่แตกต่าง

สิ่งนี้จะสร้างรายการที่ขึ้นต้นด้วย10และ9*8*7+6 = 510ดังนั้น offset 500สำหรับองค์ประกอบต่อไปนี้ [10,510,1010,1510,2010,2510 ...]รายการทั้งหมด เราเลือก4thองค์ประกอบ (ดัชนี 0-based) คือและเพิ่ม2010 3*2*1 = 6voila

ฉันใช้const 6 5 = 6เพื่อกำจัดสิ่ง5ที่ไม่ต้องการ


2

Python 2, 20 ไบต์

print 109876/54+3-21

2016.(740)อีกครั้งที่น่าเบื่อเหมือนกัน ทำให้การใช้งานของความจริงที่ว่าถ้าคุณไม่มีตัวเลขทศนิยมในการแสดงออกของคุณมันจะส่งกลับจำนวนเต็ม


1

> <> (ปลา) 18 ไบต์

10987**r65r4*n;321

คำอธิบาย:

คูณ 9 8 และ 7 เข้าด้วยกันเพื่อรับ 504 ย้อนกลับสแต็กและย้อนกลับอีกครั้งก่อนเพิ่ม 4 จากนั้นคูณ 504 และ 4 เพื่อรับ 2016 จากนั้นพิมพ์ตัวเลขและสิ้นสุดโปรแกรมก่อน 3 หมายเลขสุดท้าย (ฉันสามารถทำได้ หลังจากนั้นก็ไม่มีความแตกต่างเช่นกันถ้าสิ่งนั้นสำคัญกับกฎ)


1

คณิตศาสตร์ ++ 17 ไบต์

_(109876/54)+3-21

จริงๆแล้วงานนี้จะพิมพ์2016.0ออกมา แต่ไม่มีทางที่จะพิมพ์สตริงที่แน่นอน2016ในภาษานี้

โซลูชัน TI-BASIC ขนาด 17 ไบต์ก็สามารถใช้งานได้ที่นี่เช่นกัน


1

รูปหลายเหลี่ยม, 17 ไบต์

10+9*8-7+654*3-21

รหัสนี้ใช้ครั้งแรกในคำตอบ TI-BASIC ของ Thomas Kwaและยังทำงานใน:

  • AppleScript (โปรแกรมเต็มรูปแบบ)
  • bc (โปรแกรมเต็มรูปแบบ)
  • คณิตศาสตร์ ++ (นิพจน์หรือโปรแกรมเต็มรูปแบบ)
  • Mathematica (ฟังก์ชั่นดังนั้นจึงไม่ถูกต้อง)
  • Powershell (โปรแกรมเต็มรูปแบบ)
  • Japt (โปรแกรมเต็มรูปแบบ)
  • JavaScript (อินพุตคอนโซลจึงไม่ถูกต้อง)จำเป็นต้องมีการตรวจสอบครั้งที่สอง
  • Perl 5 (ฟังก์ชั่นจึงไม่ถูกต้อง) ต้องการการตรวจสอบที่สอง
  • Haskell (ฟังก์ชั่นดังนั้นจึงไม่ถูกต้อง)
  • Python REPL (แสดงออกดังนั้นจำเป็นต้องใช้สภาพแวดล้อม REPL เพื่อรับเอาต์พุต)

1
แล้วประเด็นคืออะไร?
nicael

@nicael ฉัน --- กำลังวางแผนอยู่ (เว้นแต่ Thomas Kwa ต้องการเพิ่มคำตอบอื่น ๆ ให้กับเขาด้วย) เพื่อเพิ่มคำตอบทั้งหมดที่เกี่ยวข้องกับคำตอบนี้ (ยกเว้น TI-BASIC) ที่ฉันสามารถหาได้ ทำเครื่องหมายเป็นชุมชนเพื่อให้ผู้อื่นมีส่วนร่วม
Addison Crump

1
ทำไมคำพูด "ฟังก์ชั่นจึงไม่ถูกต้อง"? ฟังก์ชั่นที่ได้รับอนุญาตตามค่าเริ่มต้น
nimi

5
ฉันไม่รู้เกี่ยวกับภาษาอื่น แต่10+9*8-7+654*3-21ไม่ใช่ทั้ง JavaScript และฟังก์ชั่น Perl
Dennis

1
@ Sp3000: โอ้กฎการตรวจสอบเหล่านี้มีการเปลี่ยนแปลง ...
nimi



1

PHP, 27 ไบต์

<?=~~(109876/54+3-21);

(22 ไบต์) น่าเบื่อเกินไป

ดังนั้นฉันใช้ 10 ถึง 9 เป็นตัวเลขแยก:

<?=10*(9-8+7-6),5+4-3+2<<1;

โซลูชันอื่น ๆ ซึ่งส่วนใหญ่มีกลโกงขนาดเล็ก:

30: <?=10**(9+8-7-6)/5+4*3+(2<<1);
30: <?=10*trim(9*8,7),6+5+4+3-2*1;
29: <?=10*trim(9*8,76),5*4-3-2+1;
31: <?=10*trim(9*8,765),4+(3*2<<1);
31: <?=10*trim(9*8,765),4*3+(2<<1);
32: <?=ceil(1098*76/54)+321+ord(~j);
33: <?=(10<<9)/876*543/M_PI*2-M_E&~1;





0

C 37 ไบต์

main(){printf("%d",109876/54+3-21);}

ชุดรูปแบบเดียวกันเป็นจำนวนมากในปัจจุบัน


0

VBA ขนาด 15 ไบต์

?109876\54+3-21

(การคำนวณที่ถูกขโมยอย่างไม่มีหน้าเสียจากDennis )


0

JavaScript (ES6), 21 ไบต์

f=

_=>~~(109876/54+3-21)

console.log(f())

หาก "countdown" เป็น 0 จะสามารถทำได้ใน 19 ไบต์

f=
_=>109876/54+3-21|0
console.log(f())

และเมื่อเห็นว่าเป็น 2017 ในขณะนี้สามารถทำได้ใน 21 ไบต์:

f=
_=>-~(109876/54+3-21)
console.log(f());

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