วิศวกรรมย้อนกลับจาก Uniqueness (กระทู้ของ Cop)


23

ได้รับการส่งออกของโปรแกรมตำรวจฯ (คนo) ที่ไบต์นับ ( n) และจำนวนไบต์ที่ไม่ซ้ำกัน (คนc) ใช้มากับชิ้นส่วนที่สอดคล้องกันของรหัสที่เป็นnไบต์ยาวกับไบต์ไม่ซ้ำกันซึ่งตรงกับการส่งออกของตำรวจco


นี้เป็นด้ายตำรวจ โพสต์โซลูชั่นที่จะแตกที่นี่

ด้ายโจรจะอยู่ที่นี่


ตำรวจควรโพสต์โซลูชันเช่นนี้:

#[Language], `n` Bytes, `c` Unique Bytes (c*n points) [Cracked](Link-To-Crack)

    [Output]

---

(Optional spoiler)

กฎระเบียบ

  • คุณไม่สามารถป้อนข้อมูลใด ๆ สำหรับโปรแกรมของคุณ
  • โปรแกรมต้องใช้อย่างน้อย 1 ไบต์ แต่ต้องไม่เกิน 255 ไบต์
  • เอาต์พุตเอง จำกัด เพียง 255 ไบต์
  • โปรแกรมจะต้องมีผลลัพธ์ที่สอดคล้องกันเมื่อดำเนินการหลายครั้ง
  • หากการส่งของคุณไม่แตกภายใน 7 วันคุณอาจทำเครื่องหมายว่า "ปลอดภัย"
    • เมื่อทำเครื่องหมายไว้ที่ปลอดภัย, c*nโพสต์โซลูชั่นที่ตั้งใจและคะแนนเป็น
    • ทำเครื่องหมายคำตอบว่า "ปลอดภัย" ถ้าคุณเท่านั้นจริงๆต้องการ 15 สำหรับคำตอบที่ได้รับการยอมรับ; มันสนุกกว่าที่จะเห็นว่าคุณจะไปได้นานแค่ไหน

การชนะ

  • โพสต์ที่ไม่ได้ติดตามที่มีc*nคะแนนต่ำสุดชนะด้ายของตำรวจ
  • จะตัดสินใจหลังจาก 10 คำตอบที่ปลอดภัยหรือไม่กี่สัปดาห์

คำเตือน

  • หากคุณรู้สึกอวดดีคุณอาจบอกผู้ใช้ถึงอัลกอริทึมโดยใช้แท็กสปอยเลอร์

ผลงานที่ไม่ได้ติดตาม:

fetch("https://api.stackexchange.com/2.2/questions/147635/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!/^#.*cracked/im.test(i.body_markdown)).map(x=>{const matched = /^ ?#{1,3} ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:.*(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).reverse().forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>


1
ฟังก์ชั่นอนุญาตหรือไม่ (โดยมีเงื่อนไขว่าพวกเขาส่งคืนสตริงฉันคิดว่า)
Arnauld

1
@cairdcoinheringaahing OP ได้กล่าวว่า: "โปรแกรมจะต้องมีผลลัพธ์ที่สอดคล้องกันเมื่อดำเนินการหลายครั้ง"

5
เพียงข้อเสนอแนะสำหรับ CnR ในอนาคต: ความท้าทายที่ผู้ใช้สามารถเลือกเอาท์พุทคงที่โดยพลการนั้นค่อนข้างมีปัญหาสำหรับ CnRs เพราะโดยทั่วไปแล้วผู้คนสามารถใช้แป้นพิมพ์ของพวกเขา (ยกเว้นข้อ จำกัด ทางไวยากรณ์) และโพสต์ผลลัพธ์ โปรแกรมกำลังทำจริง มิฉะนั้นนี่เป็นความคิดที่ท้าทาย :)
Martin Ender

4
@EriktheOutgolfer ดังที่ฉันพูด "ยกเว้นข้อ จำกัด ทางไวยากรณ์" ประเด็นก็คือไม่ใช่ว่าคุณโพสต์สตรีมแบบสุ่มของตัวละคร แต่เป็นโปรแกรมที่ถูกต้องแบบสุ่มซึ่งคุณไม่จำเป็นต้องเข้าใจ และโดยเฉพาะอย่างยิ่งใน esolangs หลาย ๆ อย่างมันง่ายมากที่จะเขียนโปรแกรมที่ให้ปริมาณขยะที่เหมาะสมโดยไม่ต้องทำความเข้าใจว่าโปรแกรมนั้นทำอะไร
Martin Ender

1
พิจารณาว่าความท้าทายนี้ได้แล้วกว่า 30 คำตอบที่ผมขอแนะนำให้เพิ่มข้อมูลโค้ดซึ่งรายการส่ง Uncracked เหมือนในนี้โพสต์

คำตอบ:


11

Haskell , 173 ไบต์, 8 รูปแบบไม่ซ้ำกัน, 1384 คะแนน, ปลอดภัย

"[tag:reverse_engineering]"

ดูเหมือนว่าคำตอบนี้ต้องการให้แท็กที่เกี่ยวข้องกับคำถามขณะใช้งานเพียง 8 ไบต์เท่านั้น

ตามปกติโซลูชันของคุณควรทำงานโดยวางในบล็อกรหัสบน TIO: ลองออนไลน์!


วิธีการแก้

'[':___':_'':_':':':__':__:__'':__:__':____:__:'_':__:___:_':_'_:___:__:__:__':_'_:___:_':']':[]
_:_:_'':_:_:_:__:_:_':_:_'_:_:_:_:_:___:_:_:_:__':____:___':_:__'':_=['_'..]

ใช่นี่เป็นรหัส Haskell ที่ถูกต้อง: ลองออนไลน์!

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

เครื่องหมายขีดล่าง_ถูกใช้เป็น wild card ในการจับคู่รูปแบบของ Haskell ถูกนำมาใช้สำหรับตัวอักษรเช่น' 'a'อย่างไรก็ตามทั้งสอง_และ'เป็นส่วนหนึ่งของอักขระที่อนุญาตสำหรับชื่อตัวระบุ (ภายในข้อ จำกัด บางประการเช่น'ไม่สามารถเกิดขึ้นที่จุดเริ่มต้นของชื่อได้) ดังนั้น__, _', _'_, _''และอื่น ๆ ที่มีอยู่ทั้งหมดชื่อระบุที่ถูกต้อง ใช้ชื่อที่มีความหมายมากขึ้นรหัสด้านบนจะกลายเป็น

'[':t:a:g:':':r:e:v:e:r:s:e:'_':e:n:g:i:n:e:e:r:i:n:g:']':[]
_:_:a:_:_:_:e:_:g:_:i:_:_:_:_:n:_:_:_:r:s:t:_:v:_=['_'..]

บรรทัดแรกจะให้สตริง"[tag:reverse_engineering]"ถ้าตัวแปรแต่ละตัวถูกกำหนดให้กับอักขระที่ถูกต้อง งานนี้จะประสบความสำเร็จในบรรทัดที่สอง: ['_'..]อัตราผลตอบแทนสตริง"_`abcdefghijklmnopqrstuvwxyz{|}~ ... "แม่มดจะถูกจับคู่ในรูปแบบ_:_:a:_:_:_:e:_:g:_:i:_:_:_:_:n:_:_:_:r:s:t:_:v:_ที่จะได้รับมอบหมายงานที่ต้องการa='a', e='e'และอื่น ๆ


10

Brain-Flak, 62 bytes ทั้งหมด, 6 ที่ไม่ซ้ำกัน, 372 คะแนน, แตก

นี่คือผลลัพธ์ของคุณ:

10993592

มีบางอย่างที่พิเศษเกี่ยวกับหมายเลขนี้ แต่ไม่ได้อยู่ใน OEIS ;)

ในกรณีที่คุณคิดว่าจะใช้เครื่องมือคอมพิวเตอร์ในการแก้ปัญหานี้คุณก็โชคไม่ดีนักกอล์ฟจำนวนเต็ม 110 ไบต์สำหรับตัวเลขนี้:

(((((((((((((((((((((()()()()){}){}){}){({}[()])}{}()()){})){}{}())){}{})){}{}){}){}){}())){}{}){}()){}){}){})

ลองออนไลน์!

คุณจะต้องทำสิ่งนี้ด้วยมือ


เคล็ดลับ

นี่คือเคล็ดลับบางอย่างฉันจะเปิดเผยเคล็ดลับที่มีประโยชน์มากขึ้นเมื่อเวลาผ่านไป โชคดี!

1,0993592 เป็นคำที่ 97 ของลำดับบน OEIS แต่ไม่ปรากฏเนื่องจากมีคำศัพท์เพียงไม่กี่คำเท่านั้น


โซลูชันของฉันใช้ 3 ลูป แต่ไม่ได้ซ้อนกัน 3 ระดับ


ทางออกของฉัน

((((((()()()){}){}){}){}){}())(({(({})[()])}{}){{({}[()])}{}})

ลองออนไลน์!

นี่ใช้หนึ่งในเล่ห์กลที่ฉันโปรดปรานรหัส

(({(({})[()])}{}){{({}[()])}{}})

คำนวณระยะ n ของA090809 การส่งแบบเต็มเพียงวางโค้ดกับ 97 เพื่อสร้างจำนวนมาก


ฉันอดไม่ได้ที่จะสังเกตว่ามี 10, 993 และ 592 อยู่ใน PI ที่ช่วงทศนิยม 43-63 ... 592 มีอยู่ใน 10 อันดับแรกด้วย ฉันไม่มีความคิดว่า Brain-Flak สามารถบรรลุผลสำเร็จใน 62 bytes ได้หรือไม่ ...
Yytsi

โหมด ASCII หรือโหมดตัวเลข?
user202729

@ user202729 ฉันใช้โหมดตัวเลขดังนั้นฉันจึงเชื่อว่าโจรจะต้องใช้งานเช่นกัน ฉันจะประหลาดใจอย่างจริงจังหากเป็นไปได้ในโหมด ASCII ตามความพยายามครั้งก่อนดังนั้นจึงอาจไม่คุ้มค่าที่จะติดตาม
ข้าวสาลีตัวช่วยสร้าง

1
@ThePirateBay ฉันไม่คิดว่า "ลำดับ OEIS ที่เป็นของ" เป็นข้อมูลที่มีประโยชน์อยู่เสมอพิจารณาว่า Brain-flak ลึกลับนั้นเป็นอย่างไร มันเป็นองค์ประกอบของ A000027 ด้วย แต่การสังเกตการณ์นั้นก็ไร้ประโยชน์เช่นกัน
user202729


7

MATL , 6 ไบต์× 3 ที่ไม่ซ้ำกัน = 18 คะแนน Cracked

1+0i 0+1i -1+0i 0-1i

2
เลขคณิตเลขทศนิยม!
Stewie Griffin

2
@StewieGriffin ฉันเห็นว่าคุณกำลังสนุก :-D
Luis Mendo

โดยวิธีการที่i.^(0:3)ไม่ให้จุดลอยตัวไม่ถูกต้องใน Octave แต่J4:q^ทำใน MATL ...
Stewie Griffin

@StewieGriffin ความแตกต่างที่เกิดขึ้นเพราะ MATL num2str(..., '%.15g ')ของการใช้งานฟังก์ชั่นการแสดงผล ดูตัวอย่างที่นี่ แต่นั่นไม่ได้เกิดขึ้นสำหรับ MATL ที่ทำงานบน Matlab ข้อสรุปคือการnum2strทำงานแตกต่างกันเล็กน้อยใน Matlab และใน Octave
Luis Mendo

อย่างไรก็ตามนั่นไม่ได้ส่งผลกระทบต่อคำตอบนี้ เอาต์พุตที่ระบุสามารถรับได้ด้วย MATL ที่รันบน Matlab และ Octave และโดยเฉพาะอย่างยิ่งใน TIO
Luis Mendo

6

เจลลี่ , 7 ไบต์× 6 ที่ไม่ซ้ำกัน = 42 คะแนนแตก

843606888284160000

ลองออนไลน์!

8! × 16! ¤



โอ้ฮ่าฮ่าฉันแตกด้วยศูนย์ต่อท้ายโดยไม่ได้ตั้งใจ!
Jonathan Allan

@JonathanAllan ดีที่ถอดเปลี่ยนได้อย่างง่ายดายด้วยยกตัวอย่างเช่น ตอนนี้มันสายเกินไปแล้วฉันเดาว่า ...
Erik the Outgolfer

ฉันก็แก้ปัญหาเดียวกันด้วยอุปสรรค์ที่ไม่จำเป็น: p
Jonathan Allan

@JanathanAllan พยายามที่จะแตกใหม่ของฉันหากคุณต้องการ!
Erik the Outgolfer

6

Malbolge , 15 ไบต์, 13 ที่ไม่ซ้ำกัน, 195 คะแนนปลอดภัย!

ขาออก:

PPCG

ปลอดภัย! รหัสตั้งใจ:

(&a`#""7[}4XE70

ลองออนไลน์!


ฉันแน่ใจว่าขั้นตอนการถอดรหัสนี้โดยการสร้างเดรัจฉานบังคับให้โปรแกรมส่งออก P และสร้างบน P อื่น ๆ ฯลฯ การรับไปที่ 15 อาจใช้ประโยชน์จาก Ps ทั้งสองร่วมกัน
Joshua

Malbolge นั้นชั่วร้าย มันยากเกินกว่าที่จะเขียนโปรแกรมใน Malbolge ไม่ต้องพูดถึง
user202729

6

JavaScript (ES8), 103 ไบต์, 42 ที่ไม่ซ้ำกัน (4,326 คะแนน) [SAFE]

เอาท์พุท hexdump:

3E 6E 6D 08 33 7A 22 7D 6C 37 7B 36 61 7B 65 71 3A 37 26 7E 7B 7B 38 7B 7D 69 6A 2B 3D 70 74 07 6F 6C 66 7E 1A 2A 3C 37 2D 36 31 38 6A 78 33 62 30 1E 34 3D 66 7B 37 10 26 6A 6A 32 27 6F 2E 33 1B 30 1E 76 27 27 7E 18 6F 68 26 2D 76 6A 6D 6D 2F 2E 0A 3F 17 7D 2B 73 7A 17 38 62 3A 29 20 0C 61 24 21 27 10 2B 20 63 71 72 17 5D 5F 12 5B 02 14 59 17 5A 11 1E 1D 10 16 07 5F 5F 58 58 4B 18 48 4B 04 5F 06 12 16 14 4D 45 5D 5D 16 3A 1C 1D 11 16 1F 51 59 4E 4B 4C 3D 16 1C 0F 2E 46 0E 08 4B 4B 13 45 21 10 06 0E 11 3F 51 57 3E 00 54 5F 49 05 0E 07 5A 51 3E 08 01 25 10 0B 51 36 43 0B 34 1A 43 47 04 46 0E 55 05 00 06 01 40 33 0F 00 53 36 42 42 45 5F 3D 3A 38 74 39 74 71 71 2C 7C 60 38 38 76 63 44 7F 64 28 66 3E 24 7A 66 57 79 24 3C 3C 21 6A 36 27 30 77 7E 36 7E 2A 3E 29

ฉันรู้ว่าคะแนนนั้นใหญ่ผิดปกติ แต่อย่างไรก็ตามฉันคิดว่าอันนี้น่าสนใจที่จะถอดรหัส โปรแกรมเป็นฟังก์ชันที่คืนค่าสตริง (เพื่อหลีกเลี่ยงความสับสนนี่ไม่ใช่ REPL)

ไม่ควรยากเกินไปฉันคิดว่าทุกอย่างเกี่ยวกับการค้นหาลวดลาย

วิธีการแก้

ดูเหมือนว่ามันจะแข็งกว่าที่ฉันคิดไว้ตามความจริงที่ว่าไม่มีใครแตกได้ ฉันเชื่อว่าอาจมีวิธีแก้ปัญหาหลายอย่างซึ่งง่ายต่อการประดิษฐ์ อย่างไรก็ตามนี่คือทางออกที่ตั้งใจไว้:

f = m => [ ... m = f + f + F] .map ((มี P) => + p 1 & 256 '': String.fromCharCode ((p & 4 เมตร [p ^ 17]: a) .charCodeAt^83^p*.3)).join

ด้วยเหตุผลบางอย่างมันไม่แสดงอย่างถูกต้องเป็นข้อมูลโค้ด นี่คือการเชื่อมโยง TIO


ทำเครื่องหมายว่าปลอดภัยหรือไม่
user202729

@ user202729 ฉันเห็นด้วยบางทีปริศนาอาจยากกว่าที่ฉันคิดดังนั้นตอนนี้จึงถูกทำเครื่องหมายว่าปลอดภัย

5

Octave, 13 ไบต์, 5 ตัวละครที่ไม่ซ้ำกันคะแนน: 65 ปลอดภัย!

20085918935040000

อันนี้ไม่ควรยากเกินไป หากคุณไม่ต้องการที่จะข้ามไปยังสิ่งที่ยากที่สุดในทันทีมันอาจเป็นความท้าทายแรกที่ดี :)

หมายเหตุ: เมื่อฉันอ่านคำถามฉันจะพูดว่า: เอาท์พุทตัวเลขไม่ใช่เอาท์พุทสตริง ผลลัพธ์มีลักษณะเช่นนี้ใน TIO:

ans =    2.0086e+16

และจะมีลักษณะเช่นนี้หากคุณมี format long

ans =  20085918935040000

หรือคุณอาจพิมพ์แบบนี้:

printf('%i',ans)
20085918935040000

สิ่งที่ฉันมีและคำอธิบาย:

prod prodprod

เรียบง่ายเหมือนที่ =)

อธิบาย:

โดยปกติคุณจะเขียนสิ่งนี้เป็น: prod('prodprod')แต่ Octave ปฏิบัติต่อสิ่งใดก็ตามที่อยู่หลังชื่อฟังก์ชันเป็นสตริง (อาเรย์ของอักขระ) สิ่งเหล่านี้จะถูกแปลงเป็นค่า ASCII โดยนัยและคูณด้วยกัน


4

MATL, 4 ไบต์, 4 เอกสิทธิ์, 16 คะแนน Cracked

เอาท์พุท:

1388289520800

สิ่งที่ฉันมี:

1X%p
สิ่งนี้จะผลักดันหมายเลข 1 ตรวจสอบว่าเป็นคลาสใดจากนั้นคูณค่า ASCII ของสตริงผลลัพธ์ 'double'



4

Java 8 (โปรแกรมเต็มรูปแบบ), 97 รวมไบต์, 34 ที่ไม่ซ้ำกัน, 3298 คะแนน ( แตกโดย@RobertoGraham )

เอาท์พุท:

1.4241570377303032

หมายเหตุ: นี่เป็นโปรแกรมเต็ม หากฟังก์ชั่นในรูปแบบของ()->อนุญาตให้ใช้แทน:

Java 8 (ฟังก์ชั่นแลมบ์ดา), 40 ไบต์ทั้งหมด, 18 ค่าซ้ำ, 720 คะแนน (ถอดรหัสโดย @ user202729 )

มันอาจจะค่อนข้างยาก แต่อะไรก็ตาม .. มันไม่เหมือน Java ที่จะชนะทุกอย่างด้วยคะแนนในระดับนี้ ..


คำแนะนำ:

รหัสที่ต้องการไม่มีคำพูดเดี่ยวหรือคู่ใด ๆ (ฟังก์ชันจะคืนค่าเป็นสองเท่า)
โค้ดที่ต้องการไม่มีตัวเลขใด ๆ ( 0-9)


โซลูชันที่ตั้งใจไว้:

ค่อนข้างตลก (และน่าประทับใจ) ว่ารอยแตกทั้งสองนี้แตกต่างจากที่ฉันคิดไว้ในใจอย่างไร

ฟังก์ชั่น: โปรแกรมเต็มรูปแบบ:()->Math.log(Math.hypot(Math.PI,Math.E))
interface M{static void main(String[]a){System.out.print(Math.log(Math.hypot(Math.PI,Math.E)));}}


ทำไมคุณถึงมีสองโปรแกรม แต่มีเพียงหนึ่งเอาต์พุต
Okx

1
@Okx เพราะที่สองคือฟังก์ชั่น
Erik the Outgolfer

@Okx ตามที่Erikพูดถึงเพราะทั้งคู่เหมือนกัน ด้านบนเป็นโปรแกรมด้านล่างเป็นฟังก์ชั่น ฉันยังรอความคิดเห็นของArnauldที่จะตอบเพื่อให้ฉันสามารถลบหนึ่งในสอง ..
Kevin Cruijssen

ดังนั้นการพิมพ์สายอักขระที่ตรงไปตรงมาก็คือความยาวที่เหมาะสม แต่มีสองอันที่ไม่ซ้ำกันมากเกินไป :-) - จริง ๆ แล้ว 1 ถ้าคุณไม่นับ newline ...
Kevin


4

MATL, 11 ไบต์, ไม่ซ้ำกัน 10 ข้อ, 110 คะแนน ปลอดภัย!

เอาท์พุท:

10803850202590

เพียงเพื่อ "ช่วย" คุณเป็นหนึ่งในวิธี:

นี่คือผลิตภัณฑ์ของ:

[2, 5, 29, 89, 397, 499, 2113]

และมันก็น้อยกว่า372884884433rd prime


และนี่คือเคล็ดลับที่แท้จริง ถ้ามันไม่ได้แตกในอีกไม่กี่ชั่วโมงฉันจะเปิดเผยวิธีแก้ปัญหา

  1. - มีของqอยู่ในนั้น

  2. - มีของBอยู่ในนั้น

  3. - มีของ^อยู่ในนั้น

  4. - มีของhอยู่ในนั้น

  5. - มีของtอยู่ในนั้น

รหัสจริง:

9K ^ ZqsBthXB

คำอธิบาย:

กดตัวเลขสองตัว9และKและยกกำลัง สร้างรายการของช่วงเวลาทั้งหมดที่อยู่ด้านล่างของตัวเลขและรวม แปลงเป็นไบนารีทำซ้ำเวกเตอร์ไบนารีและเชื่อมต่อกับตัวเอง แปลงกลับเป็นทศนิยมและเอาท์พุทโดยปริยาย


3

Haskell , 10 ไบต์, 3 ที่ไม่ซ้ำกัน, 30 คะแนน, แตก

2416508937

ตัวเลขที่ดีซึ่งมีทุกหลักแม้ว่าจะใช้เพียง 3 ไบต์เท่านั้น

โซลูชันที่ต้องการทำงานโดยการแทนที่ส่วนของรหัสในลิงค์ TIO ต่อไปนี้: ลองออนไลน์!



@ H.PWiz ฉันไม่ได้คาดหวังว่าจะได้นาน แต่นี่ก็เร็วมาก ฉันคาดว่าโจร (หรืออย่างน้อยก็หวัง) โจรจะลองแก้ปัญหาทางคณิตศาสตร์ก่อน
Laikoni

3

Haskell , 29 ไบต์, 15 ไบต์ที่ไม่ซ้ำกัน, 435 คะแนน, แตก

"33333333333333333333333333333333333333333333334333333333333333333333333333"

นี่คือสตริงที่มี373 ครั้งและลับ ๆ ล่อๆเดียว4

โซลูชันที่ต้องการทำงานโดยการแทนที่ส่วนของรหัสในลิงค์ TIO ต่อไปนี้: ลองออนไลน์!

แก้ไข: H.PWiz พบรอยแตกที่ถูกต้อง (ซึ่งสามารถเล่นกอล์ฟได้ถึง 28 ไบต์) แต่ไม่ใช่โซลูชันที่ต้องการ

คำแนะนำ:

ไม่จำเป็นต้องใช้เลขคณิต มีวิธีแก้ปัญหาแบบนิพจน์เดียวอยู่




3

ระเบิด 9 ไบต์รวม 4 ที่ไม่ซ้ำกัน 36 คะแนน

เอาท์พุท:

22k2Dk}D}

โปรดทราบว่าเอกสารไม่สอดคล้องกับการใช้งานสำหรับภาษานี้อย่างสมบูรณ์ - ฉันเขียนวันนี้และไม่ได้สัมผัสตั้งแต่นั้นมาดังนั้นข้อบกพร่องใด ๆ ในการใช้งานที่อาจมีอยู่ตอนนี้เป็นคุณสมบัติที่แน่นอน

นอกจากนี้ฉันไม่คิดว่าภาษานี้สมบูรณ์แบบทัวริงดังนั้นคุณอาจจะดุร้าย แต่ก็น่าเบื่อ

ฉันจะให้ความช่วยเหลือมากมายแก่คุณถ้าคุณสามารถเอาท์พุทวิศวกรรมย้อนกลับไปเป็นรหัสระเบิดสั้น ๆ ได้อย่างเหมาะสมที่สุด


คะแนนของรหัสของคุณคือ 36 ใช่ไหม? การส่งออกจะมี 36 คะแนนเช่นกันดังนั้นฉันแค่ทำให้แน่ใจว่าไม่ใช่ข้อผิดพลาด :)
Stewie Griffin

@StewieGriffin ใช่แล้วเพราะเมื่อฉันอ่านคำถามครั้งแรกฉันอ่านผิดและคิดว่ารหัสจะต้องมีความยาวเท่ากับผลลัพธ์
สตีเฟ่น

รหัส "golfed Explode" ควรสั้นเพียงใด
user202729

@ user202729 ขออภัยฉันควรจะอธิบาย - รหัสการระเบิดที่สั้นที่สุดอย่างเหมาะสมเนื่องจากมันเป็นการกำหนดอย่างสมบูรณ์
Stephen

แต่ปัญหาคือคนอาจเขียนรหัสกำลังดุร้ายเพื่อหาผลลัพธ์ "ในทางทฤษฎี" แต่ใช้ไม่ได้ในทางปฏิบัติ
user202729



2

เจลลี่ , 3 ไบต์× 3 ที่ไม่ซ้ำกัน = 9 คะแนนแตก

263409560461970212832400

ลองออนไลน์!

ความพยายามอีกครั้งกับเยลลี่คราวนี้ฉันหวังว่าจะมีความท้าทายมากขึ้น

ȷc⁵



@ โจนาธานอัลลันด้วยวิธีแก้ปัญหาที่ฉันตั้งใจไว้ในเวลานี้: ฉันคิดว่ามันง่ายเกินไปที่จะใช้กำลังดุร้ายใช่มั้ย? เห็นได้ชัดว่ามีเพียงวิธีแก้ปัญหาที่เป็นไปได้ 2763520 รายการ ... และคุณใช้ฟังก์ชั่นเดียวกันเพื่อคำนวณจำนวนนี้รวมถึงจำนวนที่จะถอดรหัส
Erik the Outgolfer


2

Excel, 22 ไบต์, 16 ที่ไม่ซ้ำกัน, 352 คะแนน, แคร็ก

หนึ่งล้านห้าแสนสามหมื่นสองพันสี่ร้อยเก้าสิบห้าล้านห้าแสนสี่หมื่นแปดร้อยหกสิบห้าล้านแปดแสนเก้าหมื่นล้านล้านล้านล้านล้านล้านบาทถ้วน

นี่อาจไม่ยากที่จะถอดรหัส แต่ฉันจะใช้ฟังก์ชั่นที่ฉันไม่เคยใช้ นอกจากนี้คะแนนจะไม่ชนะอะไรเลยนอกจากคนอื่น ๆ จะแตกหัก


Cracked อาจไม่ใช่รหัสดั้งเดิมของคุณ แต่ใช้งานได้
wythagoras


2

เจลลี่ , 8 ไบต์ * 6 ที่ไม่ซ้ำกัน = 48 ( แตก )

241975308641975308641975308641975308641975308641926913580246913580246913580246913580246913580246916

คุณสามารถพยายามที่จะแตกมันนี่

โซลูชันที่ตั้งใจไว้: 7ẋ²Ḍ²ẋ4S



@JonathanAllan รอยแตกของคุณไม่ถูกต้องขออภัย (ไม่ได้พิมพ์ผลลัพธ์ที่ถูกต้อง) คุณสามารถเห็นความแตกต่างได้ที่นี่
Mr. Xcoder

@JanathanAllan Heh, พยายามที่จะแก้ปัญหาความท้าทายอื่นในเวลาเดียวกัน (ดูอาร์กิวเมนต์!: P)
Mr. Xcoder

1
@JanathanAllan Nice ฉันได้เพิ่มโซลูชันที่ตั้งใจไว้ในคำตอบของฉันด้วยเช่นกัน: D
Mr. Xcoder

2

Haskell , 30 bytes, 17 unique, 510 points, cracked

"6666666444444455666666666566555533333334333333333"

โซลูชันที่ต้องการทำงานโดยการแทนที่ส่วนของรหัสในลิงค์ TIO ต่อไปนี้: ลองออนไลน์!

วิธีนี้ใช้วิธีการเดียวกันกับคำตอบก่อนหน้าของฉันซึ่งแตกด้วยวิธีการอื่น

คำแนะนำบางอย่าง:

ไม่จำเป็นต้องใช้เลขคณิต ฉันมีวิธีแก้ปัญหาแบบนิพจน์เดียว



2

Javascript, 11Bytes , Bytes ที่7ไม่ซ้ำกัน (77 คะแนน) (แตก)

0.022522522522522525

ประกาศฟังก์ชั่นแลมบ์ดารวมอยู่ในการนับไบต์เรียกใช้ฟังก์ชั่นไม่ได้

มันควรจะง่ายจริงๆ


แก้ไขการแตกด้วยความช่วยเหลือของ @Milk
Arnauld

2

เยลลี่ , 8 ไบต์ , ไม่ซ้ำกัน 2 อัน, 8 × 2 = 16 คะแนน - ปลอดภัย!

-4.408500694095235e-05

(มีเพียง8,355,840เท่านั้น)โปรแกรมดังกล่าวที่เป็นไปได้รายการดังนั้นมันควรจะแตกได้ฉันเดา)

ไปลองออนไลน์!

อย่างไร?

⁽⁽°°°°°°
⁽⁽°เป็นฐานที่ให้ผลผลิต 250 ตัว-27221
°แปลงจากเรเดียนเป็นองศา ใช้ห้าครั้งนี้:
-475.09607568537643
-8.291990784013993
-0.1447225407260702
-0.0025258848375215096
-4.408500694095235e-05


ดี! เดิมฉันคิดว่าไบต์คู่บางอันอาจเกี่ยวข้องกันที่นี่ ฉันก็คิด°เช่นกัน แต่ไม่ได้คิดและคิดว่าคุณจะต้องเริ่มตั้งแต่ 0.
user202729

@ user202729 นั้นแตกต่างจากที่พวกเขาไม่เกี่ยวข้อง แต่อย่างใด (ยกเว้นว่าพวกเขากินสองตัวอักษรที่ตามมา)
Erik the Outgolfer

@EriktheOutgolfer ขออภัยฉันพิมพ์ตัวอักษรผิด ฉันหมายถึง
user202729

2

เยลลี่ , 4 ไบต์ , 4 อันไม่ซ้ำใคร, 4 × 4 = 16 คะแนน - ปลอดภัย!

121713205122350539153771498803599196214022517709999123476340843193655114000078051089267404501704293755399249186132786797198080437408108773592830098754467315464894774875031495160099382422748898046431945143395996374011431649446848855993397955116462522798880

โปรดทราบว่าผลลัพธ์มีความยาว 255 ไบต์อยู่ที่ขีด จำกัด

อ๋อคะแนนเช่นเดียวกับคนอื่น ๆ (เป็นยัง Uncracked) รายการวุ้นของฉัน

ไปลองออนไลน์!

อย่างไร?

7ÆĊ⁺
7เป็นตัวอักษรเจ็ด
ÆĊได้รับn THจำนวนคาตาลัน7 THคาตาลันหมายเลข429ซ้ำอะตอมก่อน429 THจำนวนคาตาลัน


121713205122350539153771498803599196214022517709999123476340843193655114000078051089267404501704293755399249186132786797198080437408108773592830098754467315464894774875031495160099382422748898046431945143395996374011431649446848855993397955116462522798880



72 ไบต์ยาวไปหน่อยใช่แล้ว คุณสามารถลบช่องว่าง (62) นอกจากนี้คุณสามารถใช้ vectorised rระหว่างรายการดัชนีโค้ดเพจสองรายการและเชื่อมโยงกับรายการดัชนีโค้ดเพจอื่นเพื่อให้มีขนาดไม่เกิน 35 ไบต์แต่ก็ยังมีไบต์ซ้ำซ้ำ ๆ และ 35 >> 4 ... ขอให้โชคดี!
Jonathan Allan

2

C (เครื่องประกอบสองของขนาด size (int) = 4), 76 ไบต์และ 35 ไบต์ที่ไม่ซ้ำกันสำหรับคะแนน 2660 ปลอดภัย

เอาท์พุท:

10542949672924294967287429496729029742949672954294967287429496728808914294967289429496728742949672946944294967291429496728742949672914964294967294429496728742949672891980429496728842949672874294967295792 

ซึ่งมีความยาว 203 ไบต์

#include <math.h>
main () {สำหรับ (int
i = 0; i <40; i ++) printf ("% u", (int) (cos (i) * 10));}

โดยไม่มี # รวมไว้ จะไม่ทำงาน


เราสามารถใช้คุณสมบัติเฉพาะคอมไพเลอร์เช่นใน gcc ได้ไหม?

1
@ThePirateBay: ฉันไม่ได้
Joshua

1
ฉันพบวิธีการที่น่าสนใจ แต่ฉันไม่สามารถตีไบต์สุดท้ายได้ดังนั้นฉันเพิ่งโพสต์ไว้ที่นี่ main(i){for(;42>i;printf("%u","eirwtlegowvnfemuwphejsno"[abs(24-i++)]-'n'));}
Colera Su

@ColeraSu อาจเป็นไปได้ว่าคุณสามารถเปลี่ยนจากตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่และเปลี่ยน'N'เป็น78(อักขระรหัสของN)
user202729

@ user202729 แต่จะไม่พอดีกับข้อ จำกัด ของ 35 ไบต์ที่ไม่ซ้ำกัน
Colera Su

2

CJam, 15 ไบต์ * 10 ที่ไม่ซ้ำกัน = 150 คะแนน

453630781352162854505467929721140132016201833205823402832306035643819420004950

คะแนนไม่ดี แต่หวังว่าจะยากที่จะถอดรหัส

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


ตอบกลับสองครั้ง: P ตั้งค่าสถานะเพื่อลบ
Christopher

@ Christopher2EZ4RTZ คุณหมายถึงอะไร คำตอบเหล่านี้แยกกันสองคำตอบพร้อมกับการแจกแจงคะแนนเดียวกัน แต่ให้ผลลัพธ์ที่แตกต่างกัน
แยกผลไม้

โอ้ว้าวฉันไม่ดี XD
Christopher

Ahaha ... คุณครับต้องเป็นตำรวจที่เกษียณอายุ 2 วันลืมคำตอบเช่นนั้น P
Magic Octopus Urn

@MagicOctopusUrn ตอนนี้ฉันเกษียณแล้วและไม่มีความสนใจในเรื่องนี้อีกต่อไป ...
Esolanging Fruit

2

CJam, 15 ไบต์ * 10 ที่ไม่ซ้ำกัน = 150 คะแนน

355605126761554652609272416635107412217265861355621217687464016216276447790261274709847680

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


2

Japt , 5 ไบต์, 5 ไบต์ที่ไม่ซ้ำกัน (25 คะแนน) ( แคร็กโดย Scrooble)

เอาท์พุท: 3628801



@Scoboble ไม่ใช่วิธีแก้ปัญหาที่ตั้งใจ แต่ทำได้เป็นอย่างดี จะอัปเดตตามรอยร้าวเมื่อฉันกลับไปที่คอมพิวเตอร์ ฉันคิดว่าตอนนี้เวอร์ชัน 4 ไบต์ที่ฉันอาจจะมีเล่ห์เหลี่ยมเล็กน้อย แต่อาจโพสต์ได้
Shaggy

ทางออกที่ตั้งใจคืออะไร?
Khuldraeseth na'Barya

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