ฉันมีความคิดนี้ในหัวของฉันเพื่อสร้างและประเมินนิพจน์ทางคณิตศาสตร์แบบสุ่ม ดังนั้นฉันจึงตัดสินใจที่จะถ่ายภาพและทำอัลกอริธึมก่อนที่จะเขียนโค้ดเพื่อทดสอบ
ตัวอย่าง:
นี่คือตัวอย่างของนิพจน์ที่ฉันต้องการสร้างแบบสุ่ม:
4 + 2 [easy]
3 * 6 - 7 + 2 [medium]
6 * 2 + (5 - 3) * 3 - 8 [hard]
(3 + 4) + 7 * 2 - 1 - 9 [hard]
5 - 2 + 4 * (8 - (5 + 1)) + 9 [harder]
(8 - 1 + 3) * 6 - ((3 + 7) * 2) [harder]
คนที่ง่ายและปานกลางค่อนข้างตรงไปตรงมา Randoms int
คั่นด้วยตัวดำเนินการสุ่มไม่มีอะไรที่นี่บ้า แต่ฉันมีปัญหาในการเริ่มต้นกับสิ่งที่สามารถสร้างหนึ่งในที่ยากและหนักขึ้นตัวอย่าง ฉันไม่แน่ใจด้วยซ้ำว่าอัลกอริทึมเดียวสามารถให้สองอันสุดท้ายกับฉันได้
สิ่งที่ฉันกำลังพิจารณา:
ฉันไม่สามารถพูดได้ว่าฉันลองใช้ความคิดเหล่านั้นเพราะฉันไม่ต้องการเสียเวลาไปในทิศทางที่ไม่มีโอกาสทำงานตั้งแต่แรก แต่ถึงกระนั้นฉันคิดว่าการแก้ปัญหาสองสาม:
- ใช้ต้นไม้
- ใช้การแสดงออกปกติ
- ใช้วง "for-type" ที่บ้าคลั่ง (แน่นอนที่สุด)
สิ่งที่ฉันกำลังมองหา:
ฉันต้องการทราบวิธีที่คุณเชื่อว่าเป็นวิธีที่ดีที่สุดระหว่างวิธีการแก้ปัญหาที่ฉันพิจารณาและความคิดของคุณ
หากคุณเห็นวิธีที่ดีในการเริ่มต้นฉันขอขอบคุณผู้นำในทิศทางที่ถูกต้องเช่นเมื่อเริ่มต้นอัลกอริทึมหรือโครงสร้างทั่วไปของมัน
โปรดทราบด้วยว่าฉันจะต้องประเมินการแสดงออกเหล่านั้น สิ่งนี้สามารถทำได้หลังจากสร้างนิพจน์หรือในระหว่างการสร้าง หากคุณคำนึงถึงคำตอบของคุณก็ถือว่ายอดเยี่ยม
ฉันไม่ได้มองหาสิ่งใดที่เกี่ยวข้องกับภาษา แต่สำหรับบันทึกฉันกำลังคิดที่จะนำไปใช้ใน Objective-C เนื่องจากเป็นภาษาที่ฉันใช้งานเมื่อไม่นานมานี้
ตัวอย่างเหล่านั้นไม่ได้รวม:
โอเปอเรเตอร์เนื่องจากฉันต้องการจัดการint
s เท่านั้นและโอเปอเรเตอร์นี้จะเพิ่มการยืนยันจำนวนมาก หากคำตอบของคุณให้วิธีแก้ปัญหาในการจัดการกับปัญหานี้มันยอดเยี่ยมมาก
หากคำถามของฉันต้องการคำชี้แจงใด ๆ โปรดถามในความคิดเห็น ขอบคุณสำหรับความช่วยเหลือของคุณ.