Spaces:
Build error
Build error
| 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() | |