Rastgele matematiksel ifadeler üretmek ve değerlendirmek için kafamda dolaşan bu fikrim var. Bu yüzden, test etmek için kodlamadan önce bir deneme yapmaya ve bir algoritma geliştirmeye karar verdim.
Misal:
Rastgele oluşturmak istediğim bazı örnek ifadeler şunlardır:
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]
Kolay ve orta olanlar oldukça düz ileri. Rasgele int
s rasgele operatörler tarafından ayrılmış, burada çılgın bir şey yok. Ama zor ve zor örneklerden birini yaratabilecek bir şeyle başlamakta biraz sorun yaşıyorum . Tek bir algoritmanın bana son ikisini verebileceğinden bile emin değilim.
Ben ne düşünüyorum:
Bu fikirleri denediğimi söyleyemem , çünkü ilk etapta çalışma şansı olmayan bir yönde ilerlemek için fazla zaman harcamak istemedim. Ama yine de birkaç çözüm düşündüm:
- Ağaçları kullanma
- Normal ifadeleri kullanma
- Çılgın bir "for-type" döngüsü kullanmak (kesinlikle en kötüsü)
Ne için bakıyorum:
Hangi yöne gideceğinizi, düşündüğüm çözümler ile kendi fikirleriniz arasında en iyi olduğuna inandığınızı bilmek istiyorum.
Başlamak için iyi bir yol görürseniz, örneğin algoritmanın başlangıcı veya genel yapısı gibi, doğru yönde bir ipucunu takdir ediyorum.
Ayrıca bu ifadeleri değerlendirmem gerektiğini de unutmayın. Bu, ifade üretildikten sonra veya oluşturma sırasında yapılabilir. Cevabınızda bunu dikkate alırsanız, bu harika.
Dil ile ilgili bir şey aramıyorum, ancak kayıt için, Objective-C'de uygulamayı düşünüyorum, çünkü son zamanlarda en çok çalıştığım dil bu.
:
Yalnızca int
s'yi değiştirmek istediğim için bu örnekler operatörü içermiyordu ve bu operatör birçok doğrulama ekliyor. Cevabınız bununla ilgili bir çözüm sunuyorsa, bu harika.
Sorumun açıklığa ihtiyacı varsa, lütfen yorumlarda sorun. Yardımın için teşekkürler.