Disons que j'ai deux nombres décimaux arbitraires (positifs), a et b. Je veux être capable de compter le nombre d'entiers qui existent entre a et b (un nombre inférieur ou égal à [nombre entier valide] qui est inférieur à b) de sorte qu'aucun d'entre eux ne dépasse le nombre arbitraire L. Y at-il un moyen facile de le faire? J'ai essayé des boucles et des planchers/plafonds, mais rien ne fonctionne comme je le veux et ça commence à être désordonné.Numéros de comptage dans une plage
Répondre
Le cas est simple:
Count = Math.Min(Math.Max(a, b), L) - Math.Min(a,b);
Quoi qu'il en a des problèmes lorsque L
est inférieur à la fois a
et b
, et ne répond pas à des nombres décimaux.
En tant que tel, donner un aller:
int Count(double firstInput, double secondInput, double limit = int.MaxValue)
{
int minInput = (int)Math.Ceiling(Math.Min(firstInput, secondInput));
int maxInput = (int)Math.Floor(Math.Max(firstInput, secondInput));
int L = (int)Math.Floor(limit);
if (L<minInput)
return 0;
bool maxInputHasDecimals = (maxInput != Math.Max(firstInput, secondInput));
return Math.Min(maxInput, L) - minInput + (maxInputHasDecimals ? 1 : 0);
}
Count(56.67, 67.8); // 11
Count(56.67, 67.8, 62.0); // 6
Count(56.67, 67.8, -3); // 0
Count(-10, -5, -3); // 5
Count(-10, -5, -7); // 3
Count(56.67, 67.0); // 10
Désolé, édité ma publication initiale pour clarifier. a et b peuvent être des flottants mais les nombres valides dans la plage doivent être des entiers. –
Mis à jour. Vous êtes un peu inconsistant dans vos échantillons, que vous soyez inclusif ou exclusif. –
De quelle manière? a et b peuvent être n'importe quoi tant qu'ils sont positifs - c'est juste la recherche des valeurs entières qui existent entre eux (seulement caveat: l'entier valide peut être égal à a si a est un entier lui-même). Les entiers valides doivent également être inférieurs ou égaux à L (L sera toujours intégrale) –
- 1. Comment convertir un numéro d'une plage de numéros à une autre plage de numéros avec Arduino
- 2. SQL - comptage SQLite numéros consécutifs
- 3. Plage de numéros en PHP
- 4. Algorithme de comptage des sous-chaînes dans une plage numérique
- 5. comptage des numéros uniques dans une colonne MySQL
- 6. Comptage avec plage et termes dans Elasticsearch
- 7. Liste de tous les numéros dans une plage où plage est spécifiée dans deux cellules - vba
- 8. Numéros d'ID d'URL d'incrémentation automatique dans une plage
- 9. VBA: Trouver les numéros manquants dans une plage des autres
- 10. Trouver l'intersection de la plage de numéros
- 11. Comptage de valeurs uniques dans la plage de dates
- 12. Générer des numéros de séquence pour une plage et décrémenter
- 13. MSSQL_Comment afficher la plage de numéros par une boucle?
- 14. Désactivation du comptage des numéros de ligne dans la commande
- 15. Ajout de nouveaux IOCTL dans le noyau (plage de numéros)
- 16. Comment convertir une plage de numéros de 0-200 à 1-5 plage
- 17. Comptage Excel Si Fonction avec plage supplémentaire
- 18. Comptage de l'occurrence des dimanches dans une plage de dates donnée sans demander une table
- 19. Numéros aléatoires lognormaux dans la plage spécifique dans Matlab
- 20. Numéros de comptage ayant trois facteurs premiers différents
- 21. essayer de trouver les numéros de comptage à la chaîne
- 22. elasticsearch aggs renvoie des numéros de comptage erronés
- 23. Comment ajouter des numéros de comptage à des doublons dans une liste en Python?
- 24. tsql grouper des numéros consécutifs dans la plage
- 25. Calculer la plage Excel lorsque l'utilisateur sélectionne les numéros de ligne et les numéros de colonne
- 26. Obtention/tri par plage de numéros - problème de syntaxe
- 27. traitement plage de numéros de chaîne en Java
- 28. Générer des nombres suivants entre plage de numéros avec SQL
- 29. Comment vérifier la plage de numéros et si une valeur de chaîne dans Elasticsearch?
- 30. Remplacer une plage de nombres avec différentes gammes de numéros dans SQL
Pouvez-vous fournir des données d'illustration? –
Je ne sais pas ce que cela signifie. Mais disons a = 56,67 et b = 67,8. Entiers valides = 57 à 67 (11 nombres). Mais si L = 62 ou quelque chose, alors entiers valides = 57 à 62 (7 nombres). –
Ou, il pourrait être a = 5 et b = 10, auquel cas des entiers valides = 5, 6, 7, 8, 9, (5 chiffres) et ainsi de suite. –