import itertools import requests import gradio as gr # Địa chỉ URL của Google Form (thay bằng URL Form thực tế của bạn) form_url = 'https://docs.google.com/forms/u/0/d/e/1FAIpQLSe86wq_QorUNWn2rCiXKaOmOvphXx7BBsylDWV2Er5wJ-iIXw/formResponse?pli=1' # Giá trị nguyên và giới hạn cho các biến values = range(1, 56) # Hệ số trong các phương trình coef_KQ3 = [1.58, 0.742, 0.317, 0.0784, -0.1188, -0.00622, 0.00463] # KQ3 coef_KQ1 = [-1.13, 0.748, 0.0171, -0.00513] # KQ1 coef_KQ6 = [18.32, 0.290, -0.474, 1.210, -0.00628, -0.01439, -0.00641, 0.02001] # KQ6 # Lưu nghiệm gần đúng và loại bỏ nghiệm trùng lặp unique_solutions = set() # Hàm xử lý tính toán và gửi lên Google Form def process_and_send(values_input): global unique_solutions unique_solutions.clear() # Xóa bộ nhớ nghiệm cũ # Sai số epsilon để kiểm tra giá trị gần đúng epsilon = values_input # Lặp qua các giá trị có thể for KQ1, KQ2, KQ3, KQ4, KQ5, KQ6 in itertools.product(values, repeat=6): # Kiểm tra điều kiện ràng buộc if 1 <= KQ1 < KQ2 < KQ3 < KQ4 < KQ5 < KQ6 <= 55: # Tính KQ3 từ KQ2, KQ4, KQ5, KQ6 KQ3_calc = coef_KQ3[0] + coef_KQ3[1] * KQ2 + coef_KQ3[2] * KQ4 + coef_KQ3[3] * KQ5 \ + coef_KQ3[4] * KQ6 + coef_KQ3[5] * KQ2 * KQ5 + coef_KQ3[6] * KQ4 * KQ6 # Tính KQ1 từ KQ2, KQ5 KQ1_calc = coef_KQ1[0] + coef_KQ1[1] * KQ2 + coef_KQ1[2] * KQ5 + coef_KQ1[3] * KQ2 * KQ5 # Tính KQ6 từ KQ2, KQ4, KQ5 KQ6_calc = coef_KQ6[0] + coef_KQ6[1] * KQ2 + coef_KQ6[2] * KQ4 + coef_KQ6[3] * KQ5 \ + coef_KQ6[4] * KQ4**2 + coef_KQ6[5] * KQ5**2 + coef_KQ6[6] * KQ2 * KQ5 + coef_KQ6[7] * KQ4 * KQ5 # Kiểm tra các điều kiện ràng buộc if abs(KQ1_calc - round(KQ1_calc)) < epsilon and abs(KQ3_calc - round(KQ3_calc)) < epsilon and abs(KQ6_calc - round(KQ6_calc)) < epsilon: if 1 <= KQ1_calc <= 12 and 3 <= KQ3_calc <= 32 and 33 <= KQ6_calc <= 53: # Thêm nghiệm vào tập hợp để loại bỏ trùng lặp unique_solutions.add((round(KQ1_calc), round(KQ3_calc), round(KQ6_calc), KQ1, KQ2, KQ3, KQ4, KQ5, KQ6)) # Gửi dữ liệu lên Google Form results = [] for solution in unique_solutions: data = { "entry.1511535107": solution[0], # Gửi giá trị rounded cho KQ1 "entry.818723360": solution[1], # Gửi giá trị rounded cho KQ3 "entry.813212118": solution[2], # Gửi giá trị rounded cho KQ6 "entry.841431312": solution[3], # Gửi giá trị nguyên KQ1 "entry.966231036": solution[4], # Gửi giá trị nguyên KQ2 "entry.1686911997": solution[5], # Gửi giá trị nguyên KQ3 "entry.1450362490": solution[6], # Gửi giá trị nguyên KQ4 "entry.1112265375": solution[7], # Gửi giá trị nguyên KQ5 "entry.233110464": solution[8], # Gửi giá trị nguyên KQ6 } # Gửi yêu cầu POST tới Google Form response = requests.post(form_url, data=data) if response.status_code == 200: results.append(f"Đã gửi thành công: {solution}") else: results.append(f"Lỗi khi gửi: {solution} - Mã lỗi: {response.status_code}") return "\n".join(results) # Tạo giao diện Gradio interface = gr.Interface( fn=process_and_send, inputs=gr.Number(label="Nhập giá trị",value=0.0000001), outputs="text", title="Ứng dụng Gửi Dữ Liệu Lên Google Form", description="Nhập các giá trị cần thiết và nhấn 'Submit' để tính toán và gửi kết quả lên Google Form." ) # Chạy giao diện Gradio interface.launch()