Biorąc pod uwagę i ,
Moje pytania to:
Biorąc pod uwagę
- Zakładając, że możemy zdecydować in , czy istnieje jakikolwiek sposób decydowania o bez konieczności wstępnego mnożenia (lub dzielenia), i . Czy jest jakiś dowód, że nie ma mowy.
- Czy istnieje szybsza metoda porównywania liczb wymiernych niż pomnożenie mianowników.
algorithms
integers
Realz Slaw
źródło
źródło
Odpowiedzi:
Moje obecne badania:
Wstępna próba ogólnych zasad
Można spróbować ustalić kilka ogólnych zasad rozwiązywania racjonalnego porównania:
Zakładając wszystkie pozytywne :a , b , c , d
Kolejna zasada:
Odtąd założymy, że , ponieważ w przeciwnym razie możemy albo rozwiązać powyższe reguły, albo odwrócić pytanie do , i tak i tak kończy się ten warunek.ca<c∧b<d cd<?ab
Reguły : To Reguła zasadniczo stwierdza, że zawsze można odjąć liczniki od mianowników i ustawić wyniki jako liczniki, aby uzyskać równoważny problem. Pominę dowód.
Ta reguła pozwala odjąć lewy licznik i mianownik od prawego licznika i mianownika dla równoważnego problemu.
I oczywiście jest skalowanie:
Korzystając z tych zasad, możesz bawić się rzeczami, stosować je wielokrotnie, w inteligentnych kombinacjach, ale zdarzają się przypadki, gdy liczby są bliskie i patologiczne.
Stosując poprzednie reguły, możesz zredukować wszystkie te problemy do:
Czasami możesz rozwiązać to teraz, a czasem nie. Przypadki patologiczne są zwykle w postaci:
Potem odwracasz i dajesz to samo, tylko z odrobiną mniej. Każde zastosowanie reguł + flip zmniejsza to o cyfrę / bit. AFAICT, nie możesz go szybko rozwiązać, chyba że zastosujesz reguły razy (raz dla każdej cyfry / bitu) w przypadku patologicznym, negując ich pozorną przewagę.O(n)
Otwarty problem?
Uświadomiłem sobie, że ten problem wydaje się trudniejszy niż niektóre obecne otwarte problemy.
Jeszcze słabszym problemem jest określenie:
A jednak słabszy:
Jest to otwarty problem weryfikacji mnożenia . Jest słabszy, ponieważ gdybyś miał sposób ustalić, czy , to możesz łatwo ustalić, czy , testując przy użyciu algorytmu dwa razy, , . Iff jest prawdą, wiesz, że .a d ? = b c a d ? < b c b c ? < a d a d ≠ b cad<?bc ad=?bc ad<?bc bc<?ad ad≠bc
Teraz był otwartym problemem, przynajmniej w 1986 roku:ad=?c
Co ciekawe, wspomniał także o kwestii weryfikacji mnożenia macierzy :
Zostało to już rozwiązane i rzeczywiście można zweryfikować w czasie za pomocą algorytmu losowego (gdzie jest rozmiarem macierzy wejściowych, więc jest to zasadniczo czas liniowy w rozmiar wejścia). Zastanawiam się, czy jest możliwe zmniejszenie mnożenia liczb całkowitych do mnożenia macierzy, szczególnie z ich podobieństwami, biorąc pod uwagę podobieństwa mnożenia liczb całkowitych Karatsuba do algorytmów mnożenia macierzy, które następnie. Być może w jakiś sposób możemy wykorzystać algorytm weryfikacji macierzy do mnożenia liczb całkowitych.n × nO(n2) n×n
W każdym razie, skoro jest to, według mojej wiedzy, problem otwarty, silniejszy problem pewnością jest otwarty. Jestem ciekawy, czy rozwiązanie problemu weryfikacji równości miałoby jakiś wpływ na problem weryfikacji nierówności porównania.ad<?cd
Niewielka odmiana naszego problemu byłaby, gdyby zagwarantowano, że ułamki zostaną zredukowane do najniższych wartości; w takim przypadku łatwo jest stwierdzić, czy . Czy może to mieć wpływ na weryfikację porównania dla ułamków zredukowanych?ab=?cd
Jeszcze subtelniejsze pytanie, co by było, gdybyśmy mieli sposób przetestować , czy obejmowałoby to testowanie ? Nie rozumiem, jak możesz użyć tego „w obie strony”, tak jak to zrobiliśmy w przypadku .o d ? = c a d ? < c dad<?c ad=?c ad<?cd
Związane z:
Przybliżone rozpoznawanie języków nieregularnych przez skończone automaty
Pracują nad przybliżonym pomnożeniem i losową weryfikacją, czego nie do końca rozumiem.
źródło
Oto bardzo częściowa próba odrzucenia. Załóżmy, że możemy wykorzystać tylko (stałą liczbę) dodawania i odejmowania w naszym decydującym, a także stałą liczbę wrt predefiniowanych liczb. Innymi słowy, możemy wykonać stałą liczbę , itd. W naszym decydującym. Wtedy jedyne wielkości, które możemy obliczyć, mają postać gdzie są predefiniowanymi stałymi. Zauważ, że można obliczyć w czasie .m o d m o d 2) m o d 3) q= k1a + k2)b + k3)c + k4re= ∑ kjaza k q O ( ∑ | a | )
Edytowane Ten decydujący ma na celu określenie nieco iff . Rozważ przyjęcie jako punktów w . Bit decyduje jej położenia wrt powierzchni , które jest hiperboloidy w 4 wymiarach. Jeśli mamy punkt w przestrzeni wejściowej, decydujący powyżej może obliczyć punkty w ograniczonej odległości od tego punktu wejściowego, tj. Te punkty itd. Definiuje prostopadłościan w przestrzeni 4 d.a d > b c a , b , c , d R 4 B a d = b c ( a , b , c , d ) q : | q - a | = k 1 ,B : B = 1 d> b c a , b , c , d R4 b d= b c ( a , b , c , d) q: | q- a | = k1,
(Jak uczynić to bardziej precyzyjnym?) Odległość od prostopadłościanu do powierzchni jest zasadniczo nieograniczona, a zatem decydujący nie może obliczyć powierzchni
źródło
Dobre pytanie. Czy zaakceptowałbyś poziom pewności siebie?
Być może przybliżony podział. To znaczy
Aby obliczyć graniczne przybliżone ilorazy a / b, przesuń w prawo a o ceil (log_2 (b)), a także o floor (log_2 (b)). Wiemy, że dokładny iloraz jest między tymi dwiema wartościami.
Następnie, w zależności od względnych rozmiarów czterech liczb całkowitych, można wykluczyć pewne przypadki i uzyskać 100% pewności.
Można powtórzyć procedurę dla podstawnika innego niż 2, a po kolejnych takich operacjach zwiększyć poziom pewności, aż do momentu, gdy w jakiś sposób zauważy się zmianę znaku / rozstrzygnięcia?
To mój szkic metody z pierwszego szkicu.
źródło
Pewnie.
Pomysł: porównaj dziesiętne rozwinięcie po kawałku.
Jedyne nieprzyjemne jest to, że musimy najpierw wykluczyć równość, ponieważ w przeciwnym razie możemy nie zakończyć.
Warto najpierw porównać części całkowite, ponieważ jest to łatwe.
Rozważ to:
Zauważ, że
do-while
pętla musi się zakończyć, ponieważ liczby są nierówne. Nie wiemy jednak, jak długo to trwa; jeśli liczby są bardzo zbliżone, może to chwilę potrwać.Czy to jest szybkie? Prawdopodobnie nie. Istnieje wiele liczb całkowitych, modułów i
gdc
s do obliczenia, i mamy pętlę, której liczba iteracji jest odwrotnie proporcjonalna do odległości między porównywanymi liczbami.Metoda pomocnicza:
źródło