วิธีการแก้ปัญหาทั้งหมดใน“ คืนความจริงเพื่อชนะ” ใน 21 ตัวอักษร


13

มีเว็บไซต์ที่เรียกว่าเป็น"กลับมาทรูที่จะชนะ"กับงานที่น่าสนใจสำหรับการเขียนโปรแกรมจาวาสคริ เป้าหมายคือการหาข้อโต้แย้งกับฟังก์ชั่นที่กำหนดซึ่งบังคับให้มันคืนค่าจริง

ต่อไปนี้เป็นหนึ่งในภารกิจ:

function total(x) {
  return (x < x) && (x == x) && (x > x);
}

ผู้ใช้ต้องค้นหาตัวอย่างสำหรับค่าxที่ทำให้ฟังก์ชันกลับจริง ในการทดสอบตัวอย่างคุณเรียกใช้ฟังก์ชันโดยมีตัวอย่างข้อมูลเป็นพารามิเตอร์ (เช่นtotal(<snippet>))

ฉันพบวิธีแก้ปัญหา 22 อักขระ:

{valueOf:_=>n++%3},n=0

บางคนพบวิธีแก้ปัญหาใน 21 ตัวอักษร ฉันหาคำตอบนี้ไม่ได้ การแก้ปัญหาใน 21 ตัวอักษรคืออะไร?


3
คุณควรเชื่อมโยงการประกวด / หน้างานที่นำมาจาก
Emigna


2
{valueOf:Math.random}ทำงานเป็นครั้งคราว ... แต่ฉันสงสัยว่าจะละเมิดกฎบางอย่าง ... (หรืออาจจะไม่?)
Arnauld

1
สิ่งเหล่านั้นเป็นเรื่องยาก จาก 24 ครั้งแรกฉันตอบได้เพียง 14 ข้อเท่านั้น ...
Neil

4
โน้ตเค็ม ... การมีฟังก์ชั่นคืนบูลีนเรียกว่า "ยอดรวม" ก็เหมือนเล็บบนกระดานดำ!
scunliffe

คำตอบ:


7

21 ตัวอักษร

{valueOf:n=_=>n=2<<n}

เรื่องตลกดั้งเดิมของฉันซึ่งถูกลบและเสนอให้ลบ:

11 ตัวอักษร :)

total=_=>!0

ทดสอบ:

function total(x) {
  return (x < x) && (x == x) && (x > x);
}
var arg = total=_=>!0
console.log(total(arg))

3
งานดีคิดนอกกรอบ แต่ความท้าทายคือการทำให้เสร็จfunction total(x) { ... } total(<insert here>)และได้ผลลัพธ์ของการtotal()โทรtrueดังนั้นฉันจึงไม่คิดว่ามันจะใช้งานได้ ...
ETHproductions

@ETHproductions <insert here>-> 0),(true:)
ngn

0)||(trueพยายามที่และยัง ไม่ว่าจะทำงานและตอนนี้ฉันสับสนอย่างสมบูรณ์เพราะมีอีกระดับที่คุณต้องทำ0);(!0หรือ smth คล้ายกัน ...
ETHproductions

โซลูชันที่ใหม่กว่าของคุณยอดเยี่ยม +1 จากฉัน!
ETHproductions

4

คำตอบที่โกง

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

{valueOf:Math.random}

การสาธิต

function total(x) {
  return (x < x) && (x == x) && (x > x);
}

for(i = 1; !total({valueOf:Math.random}); i++);

console.log('Returned true after ' + i + ' iteration(s)')


คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับวิธีการทำงานนี้ได้อย่างไร ฉันไม่เข้าใจว่าการx == xเป็นจริงจะเกิดขึ้นอย่างไรถ้า x ถูกเลือกแบบสุ่มทุกครั้ง
tsh

1
@tsh กลอุบายนั้นvalueOfไม่ได้ถูกเรียกใช้เมื่อประมวลผลการทดสอบความเท่าเทียมกัน ในทางตรงกันข้ามผู้ประกอบการเปรียบเทียบคาดหวังว่าค่าดั้งเดิมซึ่งบังคับvalueOfให้เรียก นี่คือการทดสอบแสดงให้เห็นว่า
Arnauld

ฉันได้คะแนนสูงถึง <s> 15 </s> ซ้ำ 16 ครั้ง !!!
Magic Octopus Urn

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