DmitrMakeev commited on
Commit
2e3f2cb
·
verified ·
1 Parent(s): 64891c1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -2
app.py CHANGED
@@ -771,13 +771,38 @@ calc.print_report()
771
 
772
 
773
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
774
 
775
 
776
 
777
 
778
 
779
-
780
-
 
 
 
 
781
 
782
 
783
 
 
771
 
772
 
773
 
774
+ def optimize_manual(calculator, target_ppm, max_iter=100):
775
+ """Грубый подбор масс удобрений под целевой состав."""
776
+ current_ppm = calculator.calculate_ppm()
777
+ fertilizers = calculator.fertilizers.copy()
778
+
779
+ for _ in range(max_iter):
780
+ adjusted = False
781
+ for i, (name, grams) in enumerate(fertilizers):
782
+ for element, target in target_ppm.items():
783
+ current = current_ppm.get(element, 0)
784
+ if current < target:
785
+ # Увеличиваем массу удобрения, содержащего этот элемент
786
+ if element in fertilizers_db[name]:
787
+ fertilizers[i] = (name, grams * 1.05) # +5%
788
+ adjusted = True
789
+ if not adjusted:
790
+ break
791
+ calculator.fertilizers = fertilizers
792
+ current_ppm = calculator.calculate_ppm()
793
+
794
+ return calculator
795
 
796
 
797
 
798
 
799
 
800
+ target = {"N (NO3-)": 150, "Ca": 200, "Mg": 50}
801
+ calc = HydroCalculator(10)
802
+ calc.add_fertilizer("Кальциевая селитра", 1) # Начальное приближение: 1 г
803
+ calc.add_fertilizer("Сульфат магния", 1)
804
+ optimize_manual(calc, target)
805
+ calc.print_report()
806
 
807
 
808