ขั้นของเซลลูลาร์ออโตมาตาบนวงแหวน
คำนวณหนึ่งขั้นพร้อมกันของเซลลูลาร์ออโตมาตาแบบพื้นฐานบนวงแหวนที่มีเซลล์ทวิภาคหนึ่งถึง 256 เซลล์.
def cellular_step(bits, rule):
bits = tuple(bits)
if not 1 <= len(bits) <= 256 or any(type(v) is not int or v not in (0, 1) for v in bits):
raise ValueError("cells.binary")
if type(rule) is not int or not 0 <= rule <= 255:
raise ValueError("rule.byte")
n = len(bits)
return [(rule >> (4 * bits[(i - 1) % n] + 2 * bits[i] + bits[(i + 1) % n])) & 1 for i in range(n)]| ตรวจสอบก่อนนำไปใช้ | เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม |
|---|---|
| โมเดล | ตั้งค่า endpoint ที่รองรับ OpenAI หรือ Anthropic ด้วย URL หลักและคีย์ API หากจำเป็น ทดสอบการเชื่อมต่อ เซิร์ฟเวอร์โมเดลในเครื่องต้องทำงานอยู่ เครื่องมือระยะไกลอาจส่งข้อมูลแยกต่างหาก |
| โปรเจกต์ | ทดสอบเพื่อนบ้านข้ามขอบและเซลล์เดี่ยว แล้วปฏิเสธข้อมูลว่าง เซลล์บูลีน และกฎนอกช่วงศูนย์ถึง 255. |
def cellular_step(bits, rule):
bits = tuple(bits)
if not 1 <= len(bits) <= 256 or any(type(v) is not int or v not in (0, 1) for v in bits):
raise ValueError("cells.binary")
if type(rule) is not int or not 0 <= rule <= 255:
raise ValueError("rule.byte")
n = len(bits)
return [(rule >> (4 * bits[(i - 1) % n] + 2 * bits[i] + bits[(i + 1) % n])) & 1 for i in range(n)]ให้หนึ่งขั้นจำลองสอดคล้องกันทั่วทั้งสถานะ
RuleFennec มีพื้นที่เขียนโค้ดด้วย AI บน Windows สำหรับนักพัฒนาที่แก้โค้ดเปลี่ยนสถานะ ก่อนขอโค้ด อธิบายว่าหนึ่งขั้นหมายถึงอะไรในแอปพลิเคชันและอนุญาตให้อ่านค่าใด โฟลเดอร์โครงการและการสนทนากับโมเดลที่เชื่อมต่อให้พื้นที่เปรียบเทียบข้อกำหนดนั้นกับซอร์สปัจจุบัน
สำหรับวงแหวนเซลลูลาร์ขั้นพื้นฐาน งานที่มีประโยชน์คือคำนวณการอัปเดตพร้อมกันหนึ่งครั้งจากรุ่นข้อมูลเข้าเดียวกัน รวมรูปแบบกฎ การวนเชื่อมปลาย และค่าเซลล์ที่ยอมรับในคำขอ ขอให้โมเดลตรวจว่าการแก้ที่เสนอเผลออ่านค่าที่อัปเดตไปแล้วก่อนหน้าในขั้นนั้นหรือไม่ นี่คือคำถามตรวจซอร์สที่มีผลสังเกตได้
ตรวจข้อเสนอด้วยกรณีทดสอบเซลล์เดียวและวงแหวนสั้นที่เซลล์ปลายพึ่งพากัน รันการทดสอบของโครงการและเทียบรุ่นถัดไปทั้งชุด ไม่ใช่เพียงตำแหน่งที่สะดวก คงการตรวจข้อมูลเข้าและการรักษาสถานะไว้ในการตรวจด้วย เพื่อไม่ให้การเปลี่ยนลำดับอัปเดตขยายข้อมูลที่ยอมรับโดยเงียบ ๆ
เลือกโมเดลผ่านปลายทางที่รองรับและเข้ากันได้กับ OpenAI หรือปลายทาง Anthropic โดยให้ข้อมูลรับรองเมื่อจำเป็น โมเดล AI ไร้ข้อจำกัดเป็นตัวเลือกเมื่อปลายทางมีให้ โมเดลและเซิร์ฟเวอร์ที่เลือกกำหนดความจุบริบท เครื่องมือ และข้อจำกัด กรณีทดสอบการเปลี่ยนสถานะยังเป็นหลักฐานสำหรับยอมรับโค้ดที่เสนอ
คำถามสำหรับการแก้การเปลี่ยนสถานะ
- การอัปเดตพร้อมกันหมายถึงอะไรในคำขอเขียนโค้ด?
ระบุว่าเซลล์ผลลัพธ์ทุกตัวคำนวณจากรุ่นข้อมูลเข้าเดียวกัน โค้ดที่เสนอไม่ควรให้ผลลัพธ์ก่อนหน้ากระทบการคำนวณภายหลัง รวมตัวอย่างที่ผลต่างเมื่ออัปเดตทับที่เดิม เพื่อให้ทดสอบข้อกำหนดได้ตรง ๆ ในโครงการ
- เหตุใดต้องมีวงแหวนเซลล์เดียว?
บังคับให้เพื่อนบ้านที่วนเชื่อมปลายเป็นเซลล์เดียวกันและเผยสมมติฐานขอบเขต ระบุผลที่คาดหวังของกฎที่เลือก ไม่คิดว่าตัวอย่างใหญ่กว่าครอบคลุมแล้ว ตรวจว่าข้อเสนอใช้พฤติกรรมที่กำหนดเดียวกันกับทุกขนาดที่รองรับ
- ค่าบูลีนควรนับเป็นเซลล์หรือไม่?
ใช้นโยบายข้อมูลเข้าที่แอปพลิเคชันต้องการและระบุชัด งานตัวอย่างปฏิเสธเซลล์บูลีนแม้บางภาษาจะถือเหมือนจำนวนเต็ม ตรวจการตรวจข้อมูลและเพิ่มกรณีทดสอบเพื่อไม่ให้แพตช์เปลี่ยนความต่างนี้โดยเงียบ ๆ
- RuleFennec ประเมินการจำลองทั้งหมดจากหนึ่งขั้นได้หรือไม่?
พื้นที่ทำงานช่วยอภิปรายโค้ด แต่กรณีทดสอบหนึ่งขั้นยืนยันเฉพาะพฤติกรรมที่ทดสอบ หากการแก้กระทบการรันซ้ำ ให้กำหนดความคาดหวังเพิ่มเติมและรันการตรวจโครงการที่เหมาะสมก่อนพึ่งพาการจำลองในวงกว้าง
RuleFennec · อัปเดตล่าสุด 2026-10-25