คำถามติดแท็ก logic

14
อัลกอริธึมที่เหมาะสมที่สุดสำหรับเกม 2048 คืออะไร?
ฉันได้สะดุดเมื่อเร็ว ๆ นี้เมื่อเกม2048 คุณรวมไพ่ที่คล้ายกันโดยเลื่อนพวกมันไปในทิศทางใดก็ได้ในสี่ทิศทางเพื่อสร้างแผ่น "ใหญ่กว่า" หลังจากที่ย้ายแต่ละกระเบื้องใหม่จะปรากฏขึ้นในตำแหน่งที่ว่างเปล่าสุ่มที่มีค่าเป็นอย่างใดอย่างหนึ่งหรือ2 เกมสิ้นสุดลงเมื่อกล่องทั้งหมดจะเต็มไปและมีการเคลื่อนไหวที่สามารถผสานกระเบื้องไม่มีหรือคุณสร้างกระเบื้องที่มีค่าของ42048 หนึ่งฉันต้องปฏิบัติตามกลยุทธ์ที่กำหนดไว้อย่างดีเพื่อให้บรรลุเป้าหมาย ดังนั้นฉันคิดว่าจะเขียนโปรแกรมสำหรับมัน อัลกอริทึมปัจจุบันของฉัน: while (!game_over) { for each possible move: count_no_of_merges_for_2-tiles and 4-tiles choose the move with a large number of merges } สิ่งที่ฉันกำลังทำอยู่คือ ณ จุดใดฉันจะพยายามผสานรวมไพ่กับค่า2และ4นั่นคือฉันพยายามมี2และ4เรียงต่อกันอย่างน้อยที่สุดเท่าที่จะทำได้ ถ้าฉันลองแบบนี้ไพ่อื่น ๆ ทั้งหมดจะถูกรวมเข้าด้วยกันโดยอัตโนมัติและกลยุทธ์ดูดี แต่เมื่อฉันใช้อัลกอริทึมนี้จริง ๆ ฉันจะได้รับเพียงประมาณ 4000 คะแนนก่อนที่เกมจะยุติ คะแนนสูงสุด AFAIK มากกว่า 20,000 คะแนนเล็กน้อยซึ่งใหญ่กว่าคะแนนปัจจุบันของฉันเล็กน้อย มีอัลกอริทึมที่ดีกว่าข้างต้นหรือไม่?

6
คือ || และ! ผู้ประกอบการเพียงพอที่จะทำให้ทุกการแสดงออกทางตรรกะที่เป็นไปได้?
ตัวอย่างการแสดงออกทางตรรกะ( a && b ) (ทั้งaและbมีค่าบูลีน)สามารถเขียนได้!(!a || !b)เช่น นี่ไม่ได้หมายความว่า&&เป็นสิ่งที่ไม่จำเป็นหรือ? นี่หมายความว่านิพจน์เชิงตรรกะทั้งหมดสามารถทำได้โดยใช้||และ!?

14
การแก้ปัญหา "ใครเป็นเจ้าของ Zebra" โดยใช้โปรแกรม
แก้ไข: ปริศนานี้เรียกอีกอย่างว่า "Einstein's Riddle" ใครเป็นเจ้าของม้าลาย (คุณสามารถลองรุ่นออนไลน์ได้ที่นี่ ) เป็นตัวอย่างของชุดคลาสสิกของปริศนาและฉันเดิมพันที่คนส่วนใหญ่ในกองมากเกินสามารถแก้ได้ด้วยปากกาและกระดาษ แต่โซลูชันแบบเป็นโปรแกรมจะมีลักษณะอย่างไร จากเบาะแสที่ระบุด้านล่าง ... มีบ้านห้าหลัง บ้านแต่ละหลังมีสีที่เป็นเอกลักษณ์ของตัวเอง เจ้าของบ้านทุกคนต่างเชื้อชาติ พวกเขาทั้งหมดมีสัตว์เลี้ยงที่แตกต่างกัน พวกเขาดื่มเครื่องดื่มที่แตกต่างกัน พวกเขาสูบบุหรี่ต่างกัน ชายชาวอังกฤษอาศัยอยู่ในบ้านสีแดง ชาวสวีเดนมีสุนัข ชาวเดนดื่มชา บ้านสีเขียวอยู่ทางซ้ายของบ้านสีขาว พวกเขาดื่มกาแฟในบ้านสีเขียว ผู้ชายที่สูบบุหรี่พอลมอลล์มีนก ในบ้านสีเหลืองพวกเขาสูบบุหรี่ Dunhill ในบ้านหลังกลางพวกเขาดื่มนม ชาวนอร์เวย์อาศัยอยู่ในบ้านหลังแรก ชายที่สูบบุหรี่ Blend อาศัยอยู่ในบ้านข้างบ้านที่มีแมว ในบ้านถัดจากบ้านที่มีม้าพวกเขาสูบบุหรี่ Dunhill ผู้ชายที่สูบบุหรี่ Blue Master ดื่มเบียร์ ชาวเยอรมันสูบบุหรี่ให้เจ้าชาย ชาวนอร์เวย์อาศัยอยู่ติดกับบ้านสีฟ้า พวกเขาดื่มน้ำในบ้านข้างๆบ้านที่สูบเบลนด์ ... ใครเป็นเจ้าของ Zebra?

3
ประเภทการเล่นกลและ (เข้มงวด) มากกว่า / น้อยกว่าการเปรียบเทียบใน PHP
PHP มีชื่อเสียงในด้านการเล่นกลประเภทต่างๆ ฉันต้องยอมรับว่ามันทำให้ฉันสับสนและฉันมีช่วงเวลาที่ยากลำบากในการค้นหาสิ่งที่เป็นตรรกะ / พื้นฐานพื้นฐานในการเปรียบเทียบ ตัวอย่างเช่นหาก$a > $bเป็นความจริงและ$b > $cเป็นความจริงก็ต้องหมายความว่า$a > $cเป็นเสมอจริงเกินไป? ตามตรรกะพื้นฐานฉันจะตอบว่าใช่แต่ฉันงงว่าฉันไม่เชื่อใจ PHP ในเรื่องนี้ อาจจะมีคนยกตัวอย่างที่ไม่ใช่กรณีนี้? นอกจากนี้ฉันยังสงสัยด้วยตัวดำเนินการที่เข้มงวดน้อยกว่าและเข้มงวดมากขึ้น (เนื่องจากความหมายของพวกเขาถูกอธิบายอย่างเคร่งครัดซึ่งฉันรู้ในอดีตจากการเปรียบเทียบความเท่าเทียมกันเท่านั้น) ว่ามันสร้างความแตกต่างใด ๆ หากสลับตัวถูกดำเนินการซ้ายและขวาด้วย ค่าไม่เท่ากันอย่างเคร่งครัด: # Precondition: if ($a === $b) { throw new Exception( 'Both are strictly equal - can not compare strictly for greater or smaller' ); } ($a > $b) …

2
คำสั่ง 'if' หรือตรรกะแบบง่ายใน Python [ปิด]
ปิด . คำถามนี้ต้องการรายละเอียดหรือความคมชัด ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดเมื่อ4 เดือนที่แล้ว . ปรับปรุงคำถามนี้ คุณจะเขียนสิ่งต่อไปนี้ใน Python ได้อย่างไร? if key < 1 or key > 34: ฉันพยายามทุกวิถีทางที่คิดได้และพบว่ามันน่าผิดหวังมาก

4
เหตุใดคำสั่ง if ที่มีการมอบหมายงานและการตรวจสอบความเท่าเทียมจึงประเมินว่าเป็นเท็จ
คำสั่ง Java ifทำงานอย่างไรเมื่อมีการกำหนดและการตรวจสอบความเท่าเทียมORกัน? public static void test() { boolean test1 = true; if (test1 = false || test1 == false) { System.out.println("TRUE"); } else { System.out.println("FALSE"); } } เหตุใดการพิมพ์นี้จึงเป็นเท็จ
105 java  if-statement  logic 

9
((a + (b & 255)) & 255) เหมือนกับ ((a + b) & 255) หรือไม่
ฉันกำลังเรียกดูรหัส C ++ และพบสิ่งนี้: (a + (b & 255)) & 255 สองครั้งและทำให้ฉันรำคาญดังนั้นฉันจึงนึกถึง: (a + b) & 255 ( aและbเป็นจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อ) ฉันเขียนสคริปต์ทดสอบ (JS) อย่างรวดเร็วเพื่อยืนยันทฤษฎีของฉัน: for (var i = 0; i < 100; i++) { var a = Math.ceil(Math.random() * 0xFFFF), b = Math.ceil(Math.random() * 0xFFFF); var expr1 = (a + …
92 c++  binary  logic 

2
ตรรกะเชิงผสมที่เทียบเท่ากับทฤษฎีประเภทสัญชาตญาณคืออะไร?
ฉันเพิ่งเรียนจบหลักสูตรของมหาวิทยาลัยซึ่งเป็นจุดเด่นของ Haskell และ Agda (ภาษาการเขียนโปรแกรมเชิงฟังก์ชันที่ขึ้นอยู่กับตัวพิมพ์) และสงสัยว่าจะสามารถแทนที่แคลคูลัสแลมบ์ดาด้วยตรรกะผสมได้หรือไม่ ด้วย Haskell สิ่งนี้ดูเหมือนจะเป็นไปได้โดยใช้ตัวรวม S และ K จึงทำให้ไม่มีจุด ฉันสงสัยว่า Agda เทียบเท่ากับอะไร กล่าวคือเราสามารถสร้างภาษาการเขียนโปรแกรมเชิงฟังก์ชันที่พิมพ์ขึ้นโดยพึ่งพา Agda โดยไม่ใช้ตัวแปรใด ๆ ได้หรือไม่? นอกจากนี้ยังสามารถแทนที่การหาปริมาณด้วยตัวผสมได้หรือไม่? ฉันไม่รู้ว่านี่เป็นเรื่องบังเอิญ แต่ตัวอย่างเช่นการหาปริมาณสากลทำให้ลายเซ็นประเภทดูเหมือนนิพจน์แลมบ์ดา มีวิธีลบการหาปริมาณสากลออกจากลายเซ็นโดยไม่เปลี่ยนความหมายหรือไม่? เช่นใน: forall a : Int -> a < 0 -> a + a < a สามารถแสดงสิ่งเดียวกันโดยไม่ใช้ forall ได้หรือไม่?


5
มีวิธีที่จะตระหนักถึงฟังก์ชั่นของประเภท ((a -> b) -> b) -> ab ทั้งสอง?
ข้อเสนอ(P -> Q) -> QและP \/ Qเทียบเท่า มีวิธีที่จะเห็นความเท่าเทียมกันนี้ใน Haskell หรือไม่: from :: Either a b -> ((a -> b) -> b) from x = case x of Left a -> \f -> f a Right b -> \f -> b to :: ((a -> b) -> b) -> Either a …
18 haskell  logic 

4
จากภาษาธรรมชาติถึงการแสดงออก C ++
ที่ได้รับมอบหมาย: แปลนิพจน์ภาษาธรรมชาติต่อไปนี้เป็นนิพจน์ C ++ สมมติว่าตัวแปรทั้งหมดเป็นตัวเลขที่ไม่เป็นลบหรือบูลีน (ของค่าจริงหรือเท็จ) ภาษาธรรมชาติ: ทั้ง a และ b เป็นเท็จหรือ c เป็นจริง แต่ไม่ใช่ทั้งสองอย่าง ทางออกของฉัน: (a==0 && b==0)xor(c==1) อาจารย์แก้ปัญหา: (!a && !b) != c คำถาม: ฉันคิดว่าฉันเข้าใจวงเล็บแรกเล็กน้อยโดยพูดว่า "ไม่ใช่ -a" และ "ไม่ -b" ฉันคิดว่า a และ b ต้องผิดโดยให้ ab ถือว่าเป็นจุดเริ่มต้นที่ไม่ใช่ศูนย์ ขวา? แต่ส่วนที่บอกว่า "ไม่เท่ากันกับ c" ฉันไม่เข้าใจวิธีแก้ปัญหาของศาสตราจารย์ทุกคนสามารถทำลายมันให้ฉันได้หรือไม่? ขอขอบคุณสำหรับความช่วยเหลือ!
9 c++  logic 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.