Mevcut araştırmam:
Bazı genel kurallarda ilk deneme
Rasyonel karşılaştırmayı çözmek için bazı genel kurallar yapmaya çalışılabilir:
Tüm pozitif varsayarsak :a,b,c,d
a<b∧c≥d⟹ab<cd
Bu, temel olarak, sol taraf birden az ve sağ taraf en az bir ise, sol taraf sağdan daha az demektir yan. Aynı damarda:
a≥b∧c≤d⟹ab≮cd
Başka bir kural:
(b>d)∧(a≤c)⇒[ab<cd]
Bu kuralı mantıklı buluyorum, çünkü payda sayı küçüldükçe pay, sayı ne kadar büyük olursa. Bu nedenle, sol tarafta daha büyük bir payda
ve daha küçük bir pay varsa, sol daha küçük olacaktır.
Buradan itibaren, olduğunu varsayacağız, aksi takdirde yukarıdaki kurallarla çözebiliriz veya soruyu , ve biz yine de bu koşulla sonuçlanır.a<c∧b<dcd<?ab
Kurallar :
Bu kuralı temel olarak, eşdeğer bir sorun elde etmek için payları her zaman paydalardan çıkarabileceğinizi ve sonuçları pay olarak ayarlayabileceğinizi belirtir. Kanıtı dışarıda bırakacağım.
(b−a)b<(d−c)d⟺[ab<cd]∣∣∣a<c,b<d
ab<c−ad−b⟺[ab<cd]∣∣∣a<c,b<d
Bu kural, eşdeğer bir sorun için sol payı ve paydayı sağ paydan ve paydadan çıkarmanızı sağlar.
Ve elbette ölçeklendirme var:
akbk<cd⟺[ab<cd]∣∣∣a<c,b<d
You yukarıdaki çıkarma kurallarını daha anlamlı hale getirmek için ölçeklemeyi kullanabilir.
Bu kuralları kullanarak, şeylerle oynayabilir, tekrar tekrar, akıllı kombinasyonlarda uygulayabilirsiniz, ancak sayıların yakın ve patolojik olduğu durumlar vardır.
Önceki kuralları uygulayarak, tüm bu sorunları şu şekilde azaltabilirsiniz:
ab<ap+qbp′+q′⟺ab<qq′∣∣∣a>q,b>q′
Bazen bunu doğrudan çözebilirsin, bazen çözemezsin. Patolojik vakalar genellikle formdadır:
ab<cd∣∣a>c,b>d,c∈O(a),d∈O(b)
Sonra çevirirsiniz ve aynı şeyle sonuçlanırsınız, sadece bir parça daha az. Her kural + flip uygulaması onu bir rakam / bit azaltır. AFAICT, patolojik durumda kez (her basamak / bit için bir kez uygulamadığınız sürece , görünüşte avantajlarını reddeden hızlı bir şekilde çözemezsiniz .O(n)
Açık problem ??
Bu sorunun bazı açık problemlerden daha zor göründüğünü fark ettim.
Daha da zayıf bir problem aşağıdakileri belirlemektir:
ad=?bc
Ve yine de daha zayıf:
ad=?c
Bu, çarpmayı doğrulamanın açık problemidir . Zayıf, çünkü belirlemenin bir yolu olsaydı , o zaman kolayca belirleyebilirsiniz , algoritmayı iki kez kullanarak test ederek , . Iff ya da doğruysa, .ad<?bcad=?bcad<?bcbc<?adad≠bc
Şimdi, en azından 1986'da açık bir sorundu:ad=?c
Çarpma ve bölmenin karmaşıklığı. Çok basit bir denklem baltası = b ile başlayalım. Tamsayılar üzerinde ele alındığında, çözülebilirliğini test etmek ve bir çözelti bulmak x sıfır kalan tamsayı bölme ile mümkündür. Belirli bir çözümü x kontrol etmek için, tamsayı çarpımı yeterli olacaktır, ancak daha hızlı doğrulama yöntemleri olup olmadığı ilginç bir açık sorundur.
- Hesaplama Karmaşıklığı Açısından Denklem Çözmede ARNOLD SCHÖNHAGE
Çok ilginç bir şekilde, matris çarpımını doğrulama sorusundan da bahsetti :
Matris çarpımının doğrulanmasının, yani verilen C için AB = G'nin muhtemelen daha hızlı yapıp yapamayacağını kontrol etmek de ilginç bir sorudur.
- Hesaplama Karmaşıklığı Açısından Denklem Çözmede ARNOLD SCHÖNHAGE
Bu çözüldüğünden beri, ve zamanında rastgele bir algoritma ile doğrulamak mümkündür ( , giriş matrislerinin büyüklüğüdür, bu nedenle temelde doğrusal giriş boyutu). Merak ediyorum, Karatsuba tamsayı çarpımının takip eden matris çarpma algoritmalarına benzerlikleri düşünüldüğünde, özellikle benzerlikleriyle tamsayı çarpımını matris çarpımına indirmenin mümkün olup olmadığını merak ediyorum. O zaman belki de bir şekilde tamsayı çarpımı için matris çarpma doğrulama algoritmasından yararlanabiliriz.O(n2)n×n
Her neyse, bu hala bildiğim kadarıyla, açık bir sorun, daha güçlü sorunu var kesinlikle açık. Eşitlik doğrulama sorununun çözülmesinin karşılaştırma eşitsizliği doğrulama sorunu üzerinde herhangi bir etkisi olup olmadığını merak ediyorum.ad<?cd
Kesirlerimizin en düşük terimlere indirgeneceği garanti edilirse, sorunumuzda ufak bir değişiklik olur; bu durumda olup olmadığını söylemek kolaydır . Bunun azaltılmış kesirler için karşılaştırma doğrulamasına etkisi olabilir mi?ab=?cd
Daha da hassas bir soru, test etmenin bir yolu olsaydı ne olurdu , bu test etmeye kadar uzanır ? için yaptığımız gibi bu "her iki yolu" nasıl kullanabileceğinizi görmüyorum .ad<?cad=?cad<?cd
İlişkili: