Uygulamayı indirin
Bir klasör seçin ve düzenlemeden önce ilgili dosyaları okumasını asistandan isteyin. Görevin hedefini ve sınırlarını belirleyin.
Kalıntıları ±10^9 içinde, aralarında asal modülleri 2 ile 10^6 arasında olan en fazla sekiz kongrüansı birleştirin. Negatif kalıntıları ve boş girdiyi sınayın; Boolean bileşenleri veya ortak çarpanları reddedip en küçük negatif olmayan çözümü ve birleşik periyodu döndürün.
Bir klasör seçin ve düzenlemeden önce ilgili dosyaları okumasını asistandan isteyin. Görevin hedefini ve sınırlarını belirleyin.
Uyumlu bir endpoint seçin. Kullanılabilir araçlar ve yanıt kalitesi, yapılandırılan modele ve sunucuya bağlıdır.
Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.
Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.
import math
def merge_congruences(pairs):
if type(pairs) is not list or len(pairs) > 8:
raise ValueError("crt.input")
answer, period = 0, 1
for pair in pairs:
if type(pair) not in (list, tuple) or len(pair) != 2 or any(type(x) is not int for x in pair):
raise ValueError("crt.pair")
residue, modulus = pair
if abs(residue) > 10**9 or not 2 <= modulus <= 10**6 or math.gcd(period, modulus) != 1:
raise ValueError("crt.modulus")
step = ((residue-answer)*pow(period, -1, modulus)) % modulus
answer += period*step
period *= modulus
answer %= period
return answer, period
Uygulamadan önce inceleyin. Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.