Extraction de sous-listes avec Cases[list, pattern /; condition]

?Cases

Une autre méthode pour extraire des sous-listes consiste à définir des "formes" (PATTERN) sur lesquelles on peut poser des conditions.

Extrayons de la liste s tous les points dont l'ordonnée est positive:

s=Table[{x,Cos[x]},{x,-6,6}];
Cases[s,{x_,y_}/;y>0]

Extrayons de la liste t tous les points dont les coordonnées sont entières et dont l'abscisse est négative:

t=Table[{x,(x^2)},{x,-6,6,(1/2)}];
Cases[t,{x_Integer,y_Integer}/;x<0]

{x_Integer, y_Integer} est la forme (PATTERN) que l'on recherche.
Ici, il s'agit des coordonnées d'un point  ayant des valeurs entières quelconques.
/; est un symbole qui introduit la condition x<0.

Cases[sArith,x_/;20<x<30]

Ici, la forme x_ symbolise n'importe quelle partie de sArith.

Problème résolu : triplets de Pythagore (version avec Cases[])

Dresser une partie de la liste des triplets de Pythagore, plus précisément:
dressez la liste des triplets (a,b,c) tels que
	a, b, c sont des entiers positifs
	(a^(2 ))+ (b^(2 ))= (c^2)
	2 ≤ a < b ≤ 12

candidats=Flatten[Table[{a,b,(Sqrt[(a^2)+(b^2)])},{a,2,11},{b,a+1,12}],1];

Enlevez les points-virgules afin de voir les résultats intermédiaires.

Cases[candidats,{a_,b_,c_Integer}]

Exercice 3 -S2-1        (3-4-2  version avec Cases)

Parmi les nombres naturels inférieurs à 1000, quels sont ceux qui sont des carrés parfaits et qui sont de la forme 4n+1 avec n entier ?

Indication: formez la liste des carrés parfaits inférieurs à 1000; puis, dans cette liste, sélectionnez les nombres dont le reste de la division par 4 donne 1.

Exercice 3-S2-2

Déterminez les nombres de 3 chiffres tels que la somme des cubes des chiffres soit égal au nombre lui-même.

Indication: recherchez les coïncidences entre les deux listes:
	a = {100, 101, 102, ..., 999}
	b = {(1^3)+(0^3)+(0^3), (1^3)+(0^3)+(1^3), (1^3)+(0^3)+(2^3), ... , (9^3)+(9^3)+(9^3)}.

Exercice 3-S2-3

Cherchez deux nombres premiers < 100 tels que la somme de leurs carrés soit égal à leur produit augmenté de 4863.

Indication: commencez par formez la liste des paires de nombres premiers.

Exercice 3-S2-4

De la liste

t=Table[(2^(2^n))+1,{n,2,7}]

a)	Extrayez la sous-liste des nombres premiers.
b)	Extrayez la sous-liste des nombres non premiers.