Qu'est-ce crochet et la parenthèse de support de la notation moyenne [first1,last1)?
J'ai vu nombre de plages représenté comme [first1,last1)
et [first2,last2)
.
Je voudrais savoir ce qu'une telle notation signifie.
[first, last)
est un demi-intervalle ouvert comme d'autres l'ont noté. Dans certains manuels scolaires, c'est aussi écrit[first, last>
et a exactement le même sens, seule la syntaxe est différente.- Un meilleur endroit pour cette question serait math.stackexchange.com (à mon humble avis). Mais jamais l'esprit! 🙂
- Moyen Mnémotechnique, pense que le crochet jette sur cette valeur, ce qui signifie "jusqu'à et y compris". Et le tour parenthèse est plus doux et moins restrictive, en ce sens: "jusqu'à".
- En tant que programmeur chaque fois que je vois des crochets, il me donne toujours un souvenir de Extended Backus-Naur form - en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form
- Je recommande la migration de ce mathématiques.SE
Vous devez vous connecter pour publier un commentaire.
Un support signifie que la fin de la plage est inclusive -- il comprend les éléments énumérés. Une parenthèse signifie que la fin est exclusif et ne contient pas la liste l'élément. Donc, pour
[first1, last1)
, la gamme débute avecfirst1
(et comprend), mais se termine juste avantlast1
.En supposant que les nombres entiers:
C'est un demi-intervalle ouvert.
[a,b]
comprend les points de fin.(a,b)
exclut eux.Dans votre cas, le point final au début de l'intervalle est inclus, mais la fin est exclue. Donc, cela signifie que l'intervalle "first1 <= x < last1".
À moitié ouverte intervalles sont utiles dans la programmation, car ils correspondent à l'idiome commun pour la lecture en boucle:
Ici i est dans l'intervalle [0, n).
Le concept de intervalle de notation vient dans les deux de Mathématiques et d'Informatique. La notation Mathématique
[
,]
,(
,)
désigne le domaine (ou gamme) d'un intervalle.Les crochets
[
et]
signifie:La parenthèse
(
et)
signifie:Un intervalle avec les états mixtes est appelé "semi-ouvertes".
Par exemple, la gamme de nombres entiers consécutifs à partir de 1 .. 10 (inclus) serait notés en tant que tel:
Remarquez comment le mot
inclusive
a été utilisé. Si nous voulons exclure le point de fin, mais une "couverture" de la même gamme, nous avons besoin de déplacer le point de fin:Pour les deux bords gauche et droit de l'intervalle il y a en fait 4 permutations:
Comment est-ce lié à l'enseignement des Mathématiques et de l'Informatique?
Les indices de tableau ont tendance à utiliser un différents décalage selon le champ dans lequel vous êtes dans:
Ces différences peuvent conduire à de subtiles poteau de clôture des erreurs, aka, tout-en-un bugs lors de la mise en œuvre d'algorithmes Mathématiques comme pour les boucles.
Entiers
Si nous avons un ensemble ou un tableau, dire des premiers nombres premiers
[ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ]
, les Mathématiciens désignent le premier élément que le1st
absolue élément. c'est à dire à l'Aide de l'indice de notation pour désigner l'index:Certains langages de programmation, en opposition, renvoyer vers le premier élément que l'
zero'th
relative élément.Depuis le tableau, les indices sont dans l'intervalle [0,N-1], puis pour des raisons de clarté, il serait "sympa" pour garder la même valeur numérique pour la gamme 0 .. N au lieu d'ajouter textuelle bruit comme un
-1
biais.Par exemple, en C ou en JavaScript, pour itérer sur un tableau de N éléments d'un programmeur écrira la commune idiome de
i = 0, i < N
avec l'intervalle [0,N) au lieu de légèrement plus de commentaires [0,N-1]:JS:
HTML:
Mathématiciens, car ils commencent à compter à 1, au lieu d'utiliser l'
i = 1, i <= N
nomenclature, mais maintenant nous avons besoin pour corriger le décalage de tableau dans une base zéro de la langue.par exemple
JS:
HTML:
De côté:
Dans les langages de programmation qui sont basés sur 0, vous pourriez avoir besoin d'un bidouille d'un mannequin zéro-ième élément d'utiliser un modèle Mathématique basé sur 1 de l'algorithme. par exemple, Python Indice De Départ
À Virgule Flottante
Intervalle de notation est également important pour les nombres à virgule flottante pour éviter les bogues subtils.
Lorsque vous traitez avec des nombres à virgule flottante en particulier dans l'Informatique Graphique (couleur de conversion, calcul de la géométrie, de l'animation d'assouplissement/fusion, etc.) souvent les nombres normalisés sont utilisés. Autrement dit, les nombres compris entre 0.0 et 1.0.
Il est important de connaître le bord des cas, si les points de terminaison sont inclusive ou exclusif:
Où M est certains machine epsilon. C'est pourquoi vous pouvez parfois voir
const float EPSILON = 1e-#
idiome dans le code C (comme1e-6
) pour un 32 bits à virgule flottante nombre. Ce DONC, la question Ne EPSILON garantie de quoi que ce soit? a quelques détails préliminaires. Pour une réponse complète voirFLT_EPSILON
et David Goldberg a Ce Que Tout Informaticien Devez Savoir À Propos De L'Arithmétique À Virgule FlottanteCertaines implémentations d'un générateur de nombre aléatoire,
random()
peut produire des valeurs dans la gamme 0.0 .. 0.999... au lieu de la plus pratique 0.0 .. 1.0. Bon les commentaires dans le code du document ce que [0.0,1.0) ou [0.0,1.0] donc, il n'y a pas d'ambiguïté quant à l'utilisation.Exemple:
random()
couleurs. Vous convertir trois valeurs à virgule flottante non signé de 8 bits de valeurs à générer un 24-bit pixel rouge, vert et bleu respectivement. En fonction de l'intervalle de sortie parrandom()
vous pouvez vous retrouver avecnear-white
(254,254,254) ouwhite
(255,255,255).Pour plus de détails à propos de virgule flottante de précision et de robustesse avec des intervalles de voir Christer Ericson En Temps Réel De Détection De Collision, Chapitre 11 Numérique Robustesse, l'Article 11.3 Robuste à virgule Flottante Utilisation.
Il peut être une mathématique de la convention dans la définition d'un intervalle où les crochets signifient "extrême", et entre parenthèses "extrême exclusive".