Penelitian saya saat ini:
Upaya awal pada beberapa aturan umum
Seseorang dapat mencoba membuat beberapa aturan umum untuk menyelesaikan perbandingan rasional:
Dengan asumsi semua positif :a,b,c,d
a<b∧c≥d⟹ab<cd
Ini pada dasarnya berarti, jika sisi kiri kurang dari satu, dan sisi kanan setidaknya satu, sisi kiri kurang dari kanan sisi. Dalam nada yang sama:
a≥b∧c≤d⟹ab≮cd
Aturan lain:
(b>d)∧(a≤c)⇒[ab<cd]
Saya menganggap aturan ini logis, karena semakin besar penyebutnya, semakin kecil angkanya, sedangkan semakin besar pembilang, semakin besar angkanya. Karenanya jika sisi kiri memiliki penyebut yang lebih besar
dan pembilang yang lebih kecil, maka yang kiri akan lebih kecil.
Mulai dari sini, kita akan menganggap bahwa , karena kalau tidak kita dapat menyelesaikannya dengan aturan di atas, atau membalikkan pertanyaan menjadi , dan bagaimanapun kita berakhir dengan kondisi ini.a<c∧b<dcd<?ab
Aturan :
Ini Pada dasarnya aturan menyatakan bahwa Anda selalu dapat mengurangi pembilang dari penyebut, dan mengatur hasilnya sebagai pembilang, untuk mendapatkan masalah yang setara. Saya akan meninggalkan buktinya.
(b−a)b<(d−c)d⟺[ab<cd]∣∣∣a<c,b<d
ab<c−ad−b⟺[ab<cd]∣∣∣a<c,b<d
Aturan ini memungkinkan Anda untuk mengurangi pembilang dan penyebut kiri dari pembilang dan penyebut kanan untuk masalah yang setara.
Dan tentu saja ada scaling:
akbk<cd⟺[ab<cd]∣∣∣a<c,b<d
You dapat menggunakan penskalaan untuk membuat aturan pengurangan di atas lebih signifikan.
Menggunakan aturan-aturan ini Anda dapat bermain-main dengan hal-hal, menerapkannya berulang kali, dalam kombinasi cerdas, tetapi ada kasus di mana angka-angka dekat, dan patologis.
Dengan menerapkan aturan sebelumnya, Anda dapat mengurangi semua masalah ini ke:
ab<ap+qbp′+q′⟺ab<qq′∣∣∣a>q,b>q′
Terkadang Anda bisa menyelesaikannya secara langsung sekarang, kadang tidak. Kasus patologis biasanya dalam bentuk:
ab<cd∣∣a>c,b>d,c∈O(a),d∈O(b)
Kemudian Anda membalikkannya, dan menghasilkan hal yang sama, hanya dengan sedikit kurang Setiap aplikasi aturan + flip menguranginya dengan digit / bit. AFAICT, Anda tidak dapat dengan cepat menyelesaikannya, kecuali jika Anda menerapkan aturan kali (satu kali untuk setiap digit / bit) dalam kasus patologis, meniadakan keuntungan yang tampak.O(n)
Masalah terbuka ??
Saya menyadari bahwa masalah ini tampaknya lebih sulit daripada beberapa masalah terbuka saat ini.
Masalah yang bahkan lebih lemah adalah menentukan:
ad=?bc
Namun lebih lemah:
ad=?c
Ini adalah masalah terbuka untuk memverifikasi multiplikasi . Itu lebih lemah, karena jika Anda memiliki cara untuk menentukan , maka kamu dapat dengan mudah menentukan , dengan menguji menggunakan algoritma dua kali, , . Jika salah benar, Anda tahu itu .ad<?bcad=?bcad<?bcbc<?adad≠bc
Sekarang, adalah masalah terbuka, setidaknya pada tahun 1986:ad=?c
Kompleksitas multiplikasi dan pembagian. Mari kita mulai dengan persamaan kapak yang sangat sederhana = b. Ketika dipertimbangkan atas bilangan bulat, menguji solvabilitasnya dan menemukan solusi x dimungkinkan oleh pembagian bilangan bulat dengan sisa nol. Untuk memeriksa solusi x yang diberikan, perkalian integer sudah cukup, tetapi merupakan masalah terbuka yang menarik apakah ada metode verifikasi yang lebih cepat.
- ARNOLD SCHÖNHAGE dalam Penyelesaian Persamaan dalam Hal Kompleksitas Komputasi
Sangat menarik, ia juga menyebutkan pertanyaan memverifikasi perkalian matriks :
Ini juga merupakan pertanyaan yang menarik apakah verifikasi perkalian matriks, yaitu, memeriksa apakah AB = G untuk C yang diberikan, mungkin dapat dilakukan lebih cepat.
- ARNOLD SCHÖNHAGE dalam Penyelesaian Persamaan dalam Hal Kompleksitas Komputasi
Ini telah dipecahkan, dan memang mungkin untuk memverifikasi dalam waktu dengan algoritma acak (dengan menjadi ukuran matriks input, jadi pada dasarnya waktu linear dalam ukuran input). Saya bertanya-tanya apakah mungkin untuk mengurangi perkalian bilangan bulat ke perkalian matriks, terutama dengan kesamaan mereka, mengingat kesamaan multiplikasi bilangan bulat Karatsuba dengan algoritma perkalian matriks yang diikuti. Maka mungkin dengan beberapa cara kita dapat memanfaatkan algoritma verifikasi perkalian matriks untuk perkalian integer.O(n2)n×n
Lagi pula, karena ini masih, setahu saya, masalah terbuka, masalah yang lebih kuat dari pasti terbuka. Saya ingin tahu apakah menyelesaikan masalah verifikasi kesetaraan akan berpengaruh pada masalah verifikasi ketidaksetaraan perbandingan.ad<?cd
Sedikit variasi dari masalah kita adalah jika fraksi dijamin akan dikurangi ke tingkat terendah; dalam hal ini mudah untuk mengetahui apakah . Apakah ini ada kaitannya dengan verifikasi perbandingan untuk fraksi yang dikurangi?ab=?cd
Pertanyaan yang bahkan lebih halus, bagaimana jika kami memiliki cara untuk menguji , apakah ini akan mencakup pengujian ? Saya tidak mengerti bagaimana Anda dapat menggunakan "dua arah" ini seperti yang kami lakukan untuk .ad<?cad=?cad<?cd
Terkait:
Perkiraan Pengakuan Bahasa Non-reguler oleh Finite Automata
Mereka mengerjakan beberapa perkiraan perkalian, dan verifikasi acak, yang saya tidak sepenuhnya mengerti.
- math.SE: Bagaimana Membandingkan dua perkalian tanpa mengalikan?
- Misalkan kita diizinkan untuk preproses sebanyak yang kita inginkan dalam waktu polinomial, dapatkah kita menyelesaikan dalam waktu linier?cab=c
- Apakah ada algoritma multiplikasi integer nondetermistic linear-time? Lihat http://compgroups.net/comp.theory/nondeterministic-linear-time-multiplication/1129399
Ada algoritma terkenal untuk mengalikan angka n-bit dengan sesuatu seperti kompleksitas O (n log (n) log (log (n))). Dan kita tidak dapat melakukan lebih baik daripada O (n) karena setidaknya kita harus melihat seluruh input. Pertanyaan saya adalah: dapatkah kita benar-benar mencapai O (n) untuk kelas yang sesuai dari algoritma "nondeterministic"?
Lebih tepatnya, apakah ada algoritma yang dapat menerima dua angka biner n-bit "a" dan "b" dan angka 2n-bit "c" dan memberi tahu Anda dalam waktu O (n) apakah "a * b = c"? Jika tidak, adakah bentuk lain dari sertifikat C (a, b, c) sehingga algoritma dapat menggunakannya untuk menguji produk dalam waktu linier? Jika bukan waktu linier, apakah masalah pengujian produk setidaknya secara asimptotik lebih mudah daripada menghitungnya? Setiap hasil yang diketahui di sepanjang garis ini akan diterima.
John
―Johnh4717