Bir dize şeklinde bir ifade verildiğinde, x için çözün. İfadedeki en yüksek x gücü 1'e eşit olacaktır. İzin verilen işleçler +, * ve -. Bunların hepsi ikili işleçlerdir. Yani 2x x * x olarak yazılır. Her operatör tek bir dönem veya bir sabitle takip edilecektir.Algoritma - Tek değişkenli lineer denklem çözme
Örneğin, aşağıdaki eşitlik dikkate:
2 * x + 5- (4 * x-7 + (4-2)) = 10 * x-9
Bu mükemmel geçerlidir denklem. 1 * 2 * 3 formundaki ifadeler geçersizdir, ancak 1 * (2 * 3) geçerlidir. Böyle bir denklem verildiğinde, x'e bir çözüm bulmamız gerekir. Denklem geçersiz ise, program bir hata mesajı görüntülemelidir.
Birisi bu sorunun nasıl çözülebileceği konusunda herhangi bir fikir verebilir mi? Şu anda aklıma gelen tek şey, Bağlamsız Dilbilgisi Gramlerini Kullanarak Sözcük Analizi ve Ayrıştırmadır. Ama bence bundan daha kolay bir çözüm var. Birisi üzerinde ışık tutabilir mi?
Ayrıştırma bir ilk adım olarak, gitmek için doğru bir yol gibi geliyor. – Xymostech
Bu soru neden kapatılsın? SO üzerinde birkaç kez benzer quesitonlar sorulmuştur, ancak hiçbiri tamamen cevaplanmamıştır. Ve bu kesinlikle programlama ile ilgili ve buna iyi cevaplar bilmek istekli :( –