Tüm çözümleri bir eşitsizliğe ulaştıran bir denkleme ihtiyacım var. Örneğin: 5x+4y+3z+3a+3b>40
. 5 bilinmeyenler x
, y
, z
, a
ve b
4.0
, 3.5
, 3.0
, 2.5
, 2.0
, 1.5
, 1.0
, 0.5
ve 0.0
alınmalıdır. Örneğin x=4
, , z=1
, a=1
, b=1
bir olasılıktır, ancak daha fazlası vardır. Bilgisayarımı hepsini nasıl bulabilirim?Bilgisayarımı bu hesaplamayı nasıl yapabilirim ve hangi programlama dilini kullanmam gerekir?
cevap
Asıl mesele, tüm olasılıkları nasıl aşacağınızı belirlemektir. Çoğu dilde, döngü için beş ile sıkışmış olacaksınız. Python Bunu başarmak için itertools.product
kullanmanızı sağlar: bir.5 tarafından
#!/usr/local/bin/python3
from itertools import product
for g in product(range(9),repeat=5):
if 5*g[0]+4*g[1]+3*g[2]+3*g[3]+3*g[4] > 80:
print([x/2 for x in g])
yerine 0-4, ben bir tamsayı olmak üzere her şeyi ikiye katlandı. Bazı şeyleri yeniden düşünmek isteyebilirsiniz. ./gpa.py | wc
bana 20k’dan fazla çözüm alabileceğini söylüyor. (Ve yalnızca çözüm sayısını bulmanız ve listelememeniz gerekiyorsa, işinizi kolaylaştırabilirsiniz.)
Bunu python'a yazdığımda [0, 1, 3, 4, 4] bir çözümdür, ancak y = 1 ve z = 4 gibi bir a = 4 b = 4 ise, sonuç yanlıştır. > 80 :( –
'[0,1,3,4,4]' 5 * 0 + 4 * 1 + 3 * 3 + 3 * 4 + 3 * 4 = 37 'değeri ile bir çözüm değildir. ve 'z = 3') ve' g = [0,2,6,8,8] 'ye karşılık gelir. – Teepeemm
Belirtildiği gibi, bu bir tam sayı programlama problemidir (özel bir doğrusal programlama durumu). Bir web araması çok fazla isabet almalıdır. Genellikle çözülmesi çok zor bir problemdir; tavsiyem GLPK gibi bir paket kullanmaktır. Tamsayı programlama çok yaygındır, bu nedenle bu sorun sınırlı olsa bile, çözülecek zamanı bulmak için zaman ayırmaya değerdir, böylece tamsayı programlama ile karşılaşabileceğiniz diğer problemlere başvurabilirsiniz.
- 1. Ne SQL Server Datatype Kullanmam Gerekir Bayt []
- 2. MySQL eşzamanlılık, nasıl çalışır ve uygulamada kullanmam gerekir
- 3. Bu yöntem dil kodu ile dilini ayarlamak gerekir django
- 4. c programlama dilini gcc ile genişletme
- 5. Tumblr hangi şablon dilini kullanır?
- 6. Bu sorguyu özyinelemeli Sql Server'ı nasıl yapabilirim?
- 7. XGBoost paralel hesaplamayı nasıl yapıyor?
- 8. Başvurumun dilini nasıl değiştirebilirim?
- 9. Değiştirilen satırları, .json dosyasına geri kaydetmek için ne kullanmam gerekir?
- 10. JSP, HTML ve Javascript - Hesaplamayı jsp'ye geçirme
- 11. PHP versiyonu 5.6.12 için hangi Mongo sürümünü kullanmam gerekiyor?
- 12. Gönderen ana bilgisayarımı posta başlığı
- 13. Hangi compiler seçeneği/kütüphanesi detect_or_t type özelliğini kullanmam gerekiyor?
- 14. Bu Java 7'yi nasıl uyumlu yapabilirim?
- 15. https sayfasındaki hangi URL’lerin https olması gerekir?
- 16. Hangi programlama dilleri mutasyon testini destekleyebilir?
- 17. Bu iOS animasyonunu OSX'te nasıl yapabilirim?
- 18. Bu uzantı yöntemini nasıl daha genel yapabilirim?
- 19. Bu Tevzi hangi yolla yapıldı?
- 20. C# ve Bluetooth Programlama
- 21. Visual Studio ile C# programlama dilini kullanarak FireFox uzantısı nasıl yazılır?
- 22. Uygulama dilini programatik olarak değiştirin
- 23. Laravel doğrulama dilini belirtin
- 24. Oracle ve programlama
- 25. Android'deki Klavye IME dilini tanıma
- 26. Uygulamamdan konuşmaya metin dilini indir
- 27. D programlama tamamlanmamış derleyici
- 28. Programlama ve DataBase
- 29. Tüm Aktivite Dilini Değiştir
- 30. İfade Alma Dilini (JSP)
Toplam 40'dan fazla not almak için yapmanız gereken en az iş miktarını size söyleyecek bir program yazmaya çalışıyorsunuz gibi geliyor. – Zymus
2.00 gpa istediğimi söyleyebilirim, sonra notlarım xyzab ve kredilerim sırasıyla 5,4,3,3,3, sonra denklem böyle (5x + 4y + 3z + 3a + 3b)/18)> 2.00 sonra 5x + 4y + 3z + 3a + 3b> 36 nasıl Ben xyzab için her olasılıkları buluyorum ????? :( –