Étant donné et b , d ∉ { 0 } ,
Mes questions sont:
Étant donné
- En supposant que nous pouvons décider dans O ( | x | + | y | ) , existe-t-il un moyen de décider a d < c b sans avoir à préformer les multiplications (ou divisions), a ⋅ d et c ⋅ b . Ou existe-t-il une sorte de preuve qu'il n'y a aucun moyen.
- Existe-t-il une méthode plus rapide pour comparer les nombres rationnels que de multiplier les dénominateurs.
algorithms
integers
Realz Slaw
la source
la source
Réponses:
Mes recherches actuelles:
Tentative initiale de quelques règles générales
On peut essayer de faire quelques règles générales pour résoudre la comparaison rationnelle:
En supposant tous positifs :a,b,c,d
Une autre règle:
Règles :
Cette règle vous permet de soustraire le numérateur et le dénominateur gauche du numérateur et du dénominateur droit pour un problème équivalent.
Et bien sûr, il y a la mise à l'échelle:
En utilisant ces règles, vous pouvez jouer avec les choses, les appliquer à plusieurs reprises, dans des combinaisons intelligentes, mais il y a des cas où les nombres sont proches et pathologiques.
Parfois, vous pouvez résoudre ce problème directement maintenant, parfois non. Les cas pathologiques se présentent généralement sous la forme:
Problème ouvert ??
J'ai réalisé que ce problème semble être plus difficile que certains problèmes ouverts actuels.
Un problème encore plus faible consiste à déterminer:
Et pourtant plus faible:
Très intéressant, il a également évoqué la question de la vérification de la multiplication matricielle :
En relation:
Reconnaissance approximative des langues non régulières par les automates finis
Ils font un travail sur la multiplication approximative et la vérification aléatoire, ce que je ne comprends pas complètement.
la source
(Comment rendre cela plus précis?) La distance du cuboïde à la surface est en général illimitée, et donc la surface ne peut pas être calculée par le décideur
la source
Bonne question. Accepteriez-vous le niveau de confiance?
Faites peut-être une division approximative. C'est à dire
Pour calculer les quotients approximatifs englobants de a / b, décaler vers la droite a par plafond (log_2 (b)) et également par étage (log_2 (b)). Nous savons alors que le quotient précis se situe entre ces deux valeurs.
Ensuite, selon la taille relative des quatre entiers, on peut être en mesure d'exclure certains cas et d'obtenir une confiance de 100%.
On peut répéter la procédure pour radix autre que 2, et par une succession de telles opérations augmenter le niveau de confiance, jusqu'à ce qu'un changement de signe / tie-break soit observé d'une manière ou d'une autre?
C'est ma première esquisse d'une méthode.
la source
Sûr.
Idée: Comparez l'expansion décimale bit par bit.
Le seul élément désagréable est que nous devons d'abord exclure l'égalité car sinon nous ne pourrions pas y mettre fin.
Il est utile de comparer d'abord les parties entières car c'est facile.
Considère ceci:
Notez que la
do-while
boucle doit se terminer car les nombres sont inégaux. Nous ne savons cependant pas combien de temps cela dure; si les chiffres sont très proches, cela pourrait prendre un certain temps.Est-ce rapide? Probablement pas. Il existe de nombreuses divisions entières, modules et
gdc
s à calculer, et nous avons une boucle dont le nombre d'itérations est inversement proportionnel à la distance entre les nombres que nous comparons.La méthode d'assistance:
la source