reorganisation par cours dans sous-répertoires

This commit is contained in:
2024-02-15 00:00:17 +01:00
parent fb166efe35
commit 0a84502bbd
108 changed files with 125556 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
Cours de Florent.
# Information Theory
This is a general field of study that we could understand as covering a number of topics outlined below.
## Database theory
In particular the relational model, where data is stored in tables (like an excel table) and that can be queried efficiently. In practice, the standard is SQL and compliant system include ORACLE, Postgresql, Mysql etc. This goes back to the seventies for the theory with mature software since the late eighties. Most websites propose content that is constructed from data stored in such a database.
In the last 20 years, new models have arisen, in particular graph model that are better suited for data that is not necessrily regular and sometimes partial and where data is queried in a local fashion. The keyword NOSQL is used with mature system like MongoDB in use in the industry. The data is queried and stored differently. This kind of database model is used for example by software of the caisse d'allocation familiale (CAF) to search and detect for large scale fraud.
We shall try to give the intuition behind the relational model by studying and manipulating data stored in tables in csv format.
## Coding theory
When we store or transmit data, no system is perfect and some bits of information are incorrectly stred/retrieved or transmitted.
The purpose of this field is to come up with coding and decoding methods that allows to detect and correct errors with a high probablilty.
We shall provide an introduction with simple codes.
## Compression theory
When we store or transmit data, it makes sense to try to reduce the storage space or the transmission delay. We are looking for two algorithms : one that can code a chunk of data to some smaller sized chunk of data; and, a second one that can from the compressed data reconstruct (perfectly or not) the initial larger chunk of data.
When we can reconstruct the data, we are performing lossless compression, otherwise we speak of irreversible or lossy compression.
For example, jpg is an image format that allows to compress information with some loss of information, but when performed adequatly the human eye can not detect the loss of information.
We shall provide an introduction with simple methods.
## Regular expressions.
Regular expressions (regexp for short) provide an effective tool to define languages.
The correspondance with finite automata mean that it is possible to efficiently compile a regular expression into an automaton that recognises the corresponding language.
On Linux this is precisely what the command grep does.
We will explain how an automaton can be generated from a regexp and see how to use the grep command to solve riddles.

View File

@@ -0,0 +1,71 @@
Cours de Florent.
# Information Theory
## Coding theory
When we store or transmit data, no system is perfect and some bits of information are incorrectly stred/retrieved or transmitted.
The purpose of this field is to come up with coding and decoding methods that allows to detect and correct errors with a high probablilty.
We shall provide an introduction with simple codes.
## Topics covered on the board
* Binary symmetric channel
* Coding and decoding one bit to obtain arbitrary error
* example for a probability of error of 1/6
repeating 3 times, repeating 5 times.
This is essentially a practical version of Shannon's noisy-channel coding theorem.
[Details here](https://en.wikipedia.org/wiki/Binary_symmetric_channel)
So in a nutshell, we can tranform a binary symmetric channel with this repetition trick into a binary symmetric chanel with an arbitrary low error rate.
It is not very practical because, it is achieved at a very high cost in terms of transmited of information compared with the actual information we wish to send.We shall therefore look for cheaper alternatives.
## Detection
If we are ready to forget about correction and concentrate on detection there is a very simple trick.
We transmit some bits of information $b_1\ldots b_n$ with *one additionnal bit*
$c$ that is computed via a very simple method from these bits, that is a certain function $f$ of $n$ arguments such that $f(b_1\ldots b_n)=c$.
At reception of some word $b'_1\ldots b'_nc'$ we check whether $f(b'_1\ldots b'_n)=c'$. If it does we assume that there is no error (we might be wrong here), it it does not we assume that there is an error and ask for retransmission of this message (we are correct here).
This is used for low level transmission of information, in particular for ascii characters (since we tend to use powers of 2 when transmitting and storing information and we have one available bit when storing the 7 bits of the ascii encoding).
[Details here](https://en.wikipedia.org/wiki/Parity_bit)
## Correction
We shall consider a last example which allows to detect and correct 1 error, and the algorithm to do this is quite simple.
Assume that we have 9 bits of information. We write this bits in the form of a 3 times 3 matrix. We add 7 redundant bits, one at the end of each line, one at the bottom of each column, and one in the bottom right corner. Each redundant bit is the sum modulo 2 of the corresponding column / line.
With this scheme we can detect 2 errors, but not correct them as there might be up to three codewords that are the nearest to a received message with 2 errors.
We can always correct 1 error by recomputing the redundant data and compare it to the received data.
In particular, if the error is within the information part, the line / column of the bit to correct lies at the intersection of the line and colmun where the two redundant bits differ.
We call this informally the matrix code below.
## Hamming distance, Minimal distance of a code.
Drawing on the board.
Example for the repeating 3 times code.
## Comparing codes.
Examples with :
* Repetition code (1 bit of information, 2 redundant bits). Detects 2 errors, corrects 1.
* parity code (7 bits of information, 1 parity bit). Detects 1 error, corrects none.
* matrix code (9 bits of information, 7 redundant bits). Detects 2 errors, corrects 1.
## Conclusion.
Very quick discussion of linear code.
Importance of encoding, detecting and correcting schemes that are efficient.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,65 @@
Cours de Florent.
# Information Theory
## A quick introduction to regular expressions.
Regular expressions (regexp for short) provide an effective tool to define languages.
The correspondance with finite automata mean that it is possible to efficiently compile a regular expression into an automaton that recognises the corresponding language.
On Linux this is precisely what the command grep does.
We will explain how an automaton can be generated from a regexp and see how to use the grep command to solve riddles.
### Ingredients of classical regexp.
```
the letters of the alphabet
+ means or
used as L1 + L2 where L1 and L2 are two languages
means a word of L1 or a word of L2.
denotes the union of the languages
. means concatenation
used as L1.L2
means a word of L1 followed by a word of L2
* means repetition 0 or more times
used as L*
means the empty word epsilon (0 repetition) or one or more words of L one after another
equivalent to epsilon + L + L.L + L.L.L + L.L.L.L + ...
```
### Construction : from regexp to automaton
We allow for automaton that allow transitions labelled with epsilon.
Then we show how to do without them.
Details on the board.
Note that JFLAP proposes an activity for this construction.
There is also an inverse transformation from automaton to regexp, also available on JFLAP.
This shows that languages defined by a regexp and languages recognized by a finite automaton form the same class of languages, commonly known as regular languages.
### grep
We shall in fact use the extended regular expressions of grep.
Use the command egrep or grep -e.
See the manual of grep for the syntax.
### Some additionnal commands
* tr to replace a character by another
* grep to search for some regular expression line by line
* wc to count words (or characters)
* sort to sort the lines of a file
### Exercise
Wordle.
Demo.

View File

@@ -0,0 +1,61 @@
Cours de Florent.
# Information Theory
## A quick introduction to compression
When we store or transmit data, it makes sense to try to reduce the storage space or the transmission delay. We are looking for two algorithms : one that can code a chunk of data to some smaller sized chunk of data; and, a second one that can from the compressed data reconstruct (perfectly or not) the initial larger chunk of data.
When we can reconstruct the data, we are performing lossless compression, otherwise we speak of irreversible or lossy compression.
We shall provide an introduction with simple methods.
## Image compression
If the data repeats locally some symbols, for example long sequences of white symbols in some black and white image, we may gain a lot of space if we describe the sequence using a number for the length of the sequence together with the repeated symbol.
This so called run length encoding was used for early file images before the gif format appeared.
The gif formal itself uses also another compression method known as LSW.
In contrast with the above where there is no loss of information, let us cite the jpg format which aims at compressing data with loss of indormation, but when performed adequatly the human eye can not detect the loss of information.
If you are interested in patent controversy, which seems to be an american sport, there are historical examples with both the gif and jpg format.
* (run length encoding)[https://en.wikipedia.org/wiki/Run-length_encoding]
* (gif)[https://en.wikipedia.org/wiki/GIF]
* (LSW)[https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch]
* (jpg)[https://en.wikipedia.org/wiki/JPEG]
## a digression : vectorial graphics format.
So far we mentionned only so called *raster graphics* formats, i.e. rectangles of pixels.
There is an alternative, in particular for artifical images : icons, diagrams, maps etc.
In contrast in a *vectorial format*, rather than describing the image, the file will describe in a mini language a recipe explaining how to draw it.
This means in particular that on a screen : the image can be zoomed to an arbitrary precision.
One format which includes as an essential component this idea is the SVG format, now a standard on the web. Basically an SVG file looks similar to an html file (it is an XML file).
Just like HTML, this XML text format allows also many manipulation by scripting techniques via the so called Document Object Model (DOM). For example, to highlight part of the image if something is selected.
You may draw some svg pictures instead of coding using for example inkscape.
* (svg)[https://en.wikipedia.org/wiki/SVG]
* (tutorial and examples on w3 schools)[https://www.w3schools.com/graphics/tryit.asp?filename=trysvg_myfirst]
## A first concrete example of compression : image and run length encoding
(activité informatique débranché irem clermont)[http://www.irem.univ-bpclermont.fr/Images-numeriques]
## Variable length encoding : Hufman code.
(Hufman)[https://en.wikipedia.org/wiki/Huffman_coding]
## Archive
(tar)["https://en.wikipedia.org/wiki/Tar_(computing)"]
## Backup
(rsync)[https://en.wikipedia.org/wiki/Rsync]

View File

@@ -0,0 +1,26 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\catcode `:\active
\catcode `;\active
\catcode `!\active
\catcode `?\active
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\babel@aux{french}{}
\@writefile{toc}{\contentsline {paragraph}{\IeC {\'e}tape 1 (au tableau)}{1}{Doc-Start}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{\IeC {\'e}tape 2 (au tableau)}{1}{Doc-Start}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{\IeC {\'e}tape 3 : compression}{1}{Doc-Start}\protected@file@percent }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
Ceci est un fichier texte pour tester la commande diff.
Vous pouvez consulter le manuel de la commande diff en écrivant.
man diff
Ici j'ajoute une ligne qui sera absente du fichier file2.txt
Pour faire la différence entre deux fichiers on peut faire :
diff --color file1.txt file2.txt

View File

@@ -0,0 +1,24 @@
Ceci est un fichier texte pour tester la commande diff.
Vous pouvez consulter le manuel de la commande diff en écrivant.
man diff
Je peux écrire le résultat (la page de manuel de diff) en écrivant
man diff >> file2.txt
Comme c'est un peu long, à la place j'ai utilisé
man diff | head >> file2.txt
GNU(1) User Commands GNU(1)
NAME
GNU diff - compare files line by line
SYNOPSIS
diff [OPTION]... FILES
DESCRIPTION
Compare FILES line by line.

View File

@@ -0,0 +1,168 @@
A mouse took a stroll through the deep dark wood. A fox saw
the mouse and the mouse looked good. “Where are you going
to, little brown mouse? Come and have lunch in my
underground house.”
étape 1 au tableau on compte la fréquence des lettres.
Le moins fréquent est à traiter en premier.
étape 2 au tableau on construit l'arbre de Huffman.
étape 3 : compression.
On note les labels de la racine vers la feuille qui est le code de chaque lettre.
A devient : 0100
(j'écris _ pour l'espace)
_ devient : 111
m devient : 10 101
o devient : 100
u devient : 0 111
s devient : 10 111
e devient : 001
_ devient : 111
t devient : 000 1
o devient : 100
o devient : 100
k devient : 101 001
_ devient : 111
a devient : ????
_ devient : 111
%:-+-+-+- Engendré par : http://math.et.info.free.fr/TikZ/Arbre/
\begin{center}
% Racine à Gauche, développement vers la droite
\begin{tikzpicture}[xscale=1,yscale=1]
% Styles (MODIFIABLES)
\tikzstyle{fleche}=[->,>=latex,thick]
\tikzstyle{noeud}=[fill=yellow,circle,draw]
\tikzstyle{feuille}=[fill=yellow,circle,draw]
\tikzstyle{etiquette}=[midway,fill=white,draw]
% Dimensions (MODIFIABLES)
\def\DistanceInterNiveaux{3}
\def\DistanceInterFeuilles{2}
% Dimensions calculées (NON MODIFIABLES)
\def\NiveauA{(0)*\DistanceInterNiveaux}
\def\NiveauB{(1.875)*\DistanceInterNiveaux}
\def\NiveauC{(3.625)*\DistanceInterNiveaux}
\def\NiveauD{(5.25)*\DistanceInterNiveaux}
\def\NiveauE{(6.75)*\DistanceInterNiveaux}
\def\NiveauF{(8.125)*\DistanceInterNiveaux}
\def\NiveauG{(9.375)*\DistanceInterNiveaux}
\def\NiveauH{(10.5)*\DistanceInterNiveaux}
\def\NiveauI{(11.5)*\DistanceInterNiveaux}
\def\InterFeuilles{(-1)*\DistanceInterFeuilles}
% Noeuds (MODIFIABLES : Styles et Coefficients d'InterFeuilles)
\node[noeud] (R) at ({\NiveauA},{(13.5)*\InterFeuilles}) {$Tous$};
\node[noeud] (Ra) at ({\NiveauB},{(3.5)*\InterFeuilles}) {$$};
\node[noeud] (Raa) at ({\NiveauC},{(1)*\InterFeuilles}) {$$};
\node[noeud] (Raaa) at ({\NiveauD},{(0.5)*\InterFeuilles}) {$$};
\node[feuille] (Raaaa) at ({\NiveauE},{(0)*\InterFeuilles}) {$H$};
\node[feuille] (Raaab) at ({\NiveauE},{(1)*\InterFeuilles}) {$T$};
\node[feuille] (Raab) at ({\NiveauD},{(2)*\InterFeuilles}) {$E$};
\node[noeud] (Rab) at ({\NiveauC},{(5)*\InterFeuilles}) {$$};
\node[noeud] (Raba) at ({\NiveauD},{(4)*\InterFeuilles}) {$$};
\node[feuille] (Rabaa) at ({\NiveauE},{(3)*\InterFeuilles}) {$A$};
\node[noeud] (Rabab) at ({\NiveauE},{(4.5)*\InterFeuilles}) {$$};
\node[feuille] (Rababa) at ({\NiveauF},{(4)*\InterFeuilles}) {$W$};
\node[feuille] (Rababb) at ({\NiveauF},{(5)*\InterFeuilles}) {$G$};
\node[noeud] (Rabb) at ({\NiveauD},{(6.5)*\InterFeuilles}) {$$};
\node[feuille] (Rabba) at ({\NiveauE},{(6)*\InterFeuilles}) {$D$};
\node[feuille] (Rabbb) at ({\NiveauE},{(7)*\InterFeuilles}) {$U$};
\node[noeud] (Rb) at ({\NiveauB},{(17.5)*\InterFeuilles}) {$$};
\node[noeud] (Rba) at ({\NiveauC},{(10.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbaa) at ({\NiveauD},{(8)*\InterFeuilles}) {$O$};
\node[noeud] (Rbab) at ({\NiveauD},{(11)*\InterFeuilles}) {$$};
\node[noeud] (Rbaba) at ({\NiveauE},{(10)*\InterFeuilles}) {$$};
\node[noeud] (Rbabaa) at ({\NiveauF},{(9.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbabaaa) at ({\NiveauG},{(9)*\InterFeuilles}) {$.$};
\node[feuille] (Rbabaab) at ({\NiveauG},{(10)*\InterFeuilles}) {$K$};
\node[feuille] (Rbabab) at ({\NiveauF},{(11)*\InterFeuilles}) {$M$};
\node[noeud] (Rbabb) at ({\NiveauE},{(12.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbabba) at ({\NiveauF},{(12)*\InterFeuilles}) {$L$};
\node[feuille] (Rbabbb) at ({\NiveauF},{(13)*\InterFeuilles}) {$S$};
\node[noeud] (Rbb) at ({\NiveauC},{(20.5)*\InterFeuilles}) {$$};
\node[noeud] (Rbba) at ({\NiveauD},{(20)*\InterFeuilles}) {$$};
\node[noeud] (Rbbaa) at ({\NiveauE},{(16.5)*\InterFeuilles}) {$$};
\node[noeud] (Rbbaaa) at ({\NiveauF},{(16)*\InterFeuilles}) {$$};
\node[noeud] (Rbbaaaa) at ({\NiveauG},{(14.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbaaaaa) at ({\NiveauH},{(14)*\InterFeuilles}) {$Y$};
\node[feuille] (Rbbaaaab) at ({\NiveauH},{(15)*\InterFeuilles}) {$"$};
\node[noeud] (Rbbaaab) at ({\NiveauG},{(17)*\InterFeuilles}) {$Nœud36$};
\node[noeud] (Rbbaaaba) at ({\NiveauH},{(16.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbaaabaa) at ({\NiveauI},{(16)*\InterFeuilles}) {$F$};
\node[feuille] (Rbbaaabab) at ({\NiveauI},{(17)*\InterFeuilles}) {$X$};
\node[feuille] (Rbbaaabb) at ({\NiveauH},{(18)*\InterFeuilles}) {$B$};
\node[feuille] (Rbbaab) at ({\NiveauF},{(19)*\InterFeuilles}) {$N$};
\node[noeud] (Rbbab) at ({\NiveauE},{(23)*\InterFeuilles}) {$$};
\node[feuille] (Rbbaba) at ({\NiveauF},{(20)*\InterFeuilles}) {$R$};
\node[noeud] (Rbbabb) at ({\NiveauF},{(23.5)*\InterFeuilles}) {$$};
\node[noeud] (Rbbabba) at ({\NiveauG},{(22.5)*\InterFeuilles}) {$$};
\node[noeud] (Rbbabbaa) at ({\NiveauH},{(21.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbabbaaa) at ({\NiveauI},{(21)*\InterFeuilles}) {$P$};
\node[feuille] (Rbbabbaab) at ({\NiveauI},{(22)*\InterFeuilles}) {$V$};
\node[noeud] (Rbbabbab) at ({\NiveauH},{(23.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbabbaba) at ({\NiveauI},{(23)*\InterFeuilles}) {$?$};
\node[feuille] (Rbbabbabb) at ({\NiveauI},{(24)*\InterFeuilles}) {$,$};
\node[noeud] (Rbbabbb) at ({\NiveauG},{(25.5)*\InterFeuilles}) {$$};
\node[feuille] (Rbbabbba) at ({\NiveauH},{(25)*\InterFeuilles}) {$C$};
\node[feuille] (Rbbabbbb) at ({\NiveauH},{(26)*\InterFeuilles}) {$I$};
\node[feuille] (Rbbb) at ({\NiveauD},{(27)*\InterFeuilles}) {$espace$};
% Arcs (MODIFIABLES : Styles)
\draw[fleche] (R)--(Ra) node[etiquette] {$0$};
\draw[fleche] (Ra)--(Raa) node[etiquette] {$0$};
\draw[fleche] (Raa)--(Raaa) node[etiquette] {$0$};
\draw[fleche] (Raaa)--(Raaaa) node[etiquette] {$0$};
\draw[fleche] (Raaa)--(Raaab) node[etiquette] {$1$};
\draw[fleche] (Raa)--(Raab) node[etiquette] {$1$};
\draw[fleche] (Ra)--(Rab) node[etiquette] {$1$};
\draw[fleche] (Rab)--(Raba) node[etiquette] {$0$};
\draw[fleche] (Raba)--(Rabaa) node[etiquette] {$0$};
\draw[fleche] (Raba)--(Rabab) node[etiquette] {$1$};
\draw[fleche] (Rabab)--(Rababa) node[etiquette] {$0$};
\draw[fleche] (Rabab)--(Rababb) node[etiquette] {$A$};
\draw[fleche] (Rab)--(Rabb) node[etiquette] {$1$};
\draw[fleche] (Rabb)--(Rabba) node[etiquette] {$0$};
\draw[fleche] (Rabb)--(Rabbb) node[etiquette] {$1$};
\draw[fleche] (R)--(Rb) node[etiquette] {$1$};
\draw[fleche] (Rb)--(Rba) node[etiquette] {$0$};
\draw[fleche] (Rba)--(Rbaa) node[etiquette] {$0$};
\draw[fleche] (Rba)--(Rbab) node[etiquette] {$1$};
\draw[fleche] (Rbab)--(Rbaba) node[etiquette] {$0$};
\draw[fleche] (Rbaba)--(Rbabaa) node[etiquette] {$0$};
\draw[fleche] (Rbabaa)--(Rbabaaa) node[etiquette] {$0$};
\draw[fleche] (Rbabaa)--(Rbabaab) node[etiquette] {$1$};
\draw[fleche] (Rbaba)--(Rbabab) node[etiquette] {$1$};
\draw[fleche] (Rbab)--(Rbabb) node[etiquette] {$1$};
\draw[fleche] (Rbabb)--(Rbabba) node[etiquette] {$0$};
\draw[fleche] (Rbabb)--(Rbabbb) node[etiquette] {$1$};
\draw[fleche] (Rb)--(Rbb) node[etiquette] {$1$};
\draw[fleche] (Rbb)--(Rbba) node[etiquette] {$0$};
\draw[fleche] (Rbba)--(Rbbaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaa)--(Rbbaaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaaa)--(Rbbaaaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaaaa)--(Rbbaaaaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaaaa)--(Rbbaaaab) node[etiquette] {$1$};
\draw[fleche] (Rbbaaa)--(Rbbaaab) node[etiquette] {$1$};
\draw[fleche] (Rbbaaab)--(Rbbaaaba) node[etiquette] {$0$};
\draw[fleche] (Rbbaaaba)--(Rbbaaabaa) node[etiquette] {$0$};
\draw[fleche] (Rbbaaaba)--(Rbbaaabab) node[etiquette] {$1$};
\draw[fleche] (Rbbaaab)--(Rbbaaabb) node[etiquette] {$1$};
\draw[fleche] (Rbbaa)--(Rbbaab) node[etiquette] {$1$};
\draw[fleche] (Rbba)--(Rbbab) node[etiquette] {$1$};
\draw[fleche] (Rbbab)--(Rbbaba) node[etiquette] {$0$};
\draw[fleche] (Rbbab)--(Rbbabb) node[etiquette] {$1$};
\draw[fleche] (Rbbabb)--(Rbbabba) node[etiquette] {$0$};
\draw[fleche] (Rbbabba)--(Rbbabbaa) node[etiquette] {$0$};
\draw[fleche] (Rbbabbaa)--(Rbbabbaaa) node[etiquette] {$0$};
\draw[fleche] (Rbbabbaa)--(Rbbabbaab) node[etiquette] {$1$};
\draw[fleche] (Rbbabba)--(Rbbabbab) node[etiquette] {$1$};
\draw[fleche] (Rbbabbab)--(Rbbabbaba) node[etiquette] {$0$};
\draw[fleche] (Rbbabbab)--(Rbbabbabb) node[etiquette] {$1$};
\draw[fleche] (Rbbabb)--(Rbbabbb) node[etiquette] {$1$};
\draw[fleche] (Rbbabbb)--(Rbbabbba) node[etiquette] {$0$};
\draw[fleche] (Rbbabbb)--(Rbbabbbb) node[etiquette] {$1$};
\draw[fleche] (Rbb)--(Rbbb) node[etiquette] {$1$};
\end{tikzpicture}
\end{center}
%:-+-+-+-+- Fin

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
sodipodi:docname="dessin.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.2965909"
inkscape:cx="226.3979"
inkscape:cy="548.57143"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1874"
inkscape:window-height="1136"
inkscape:window-x="46"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<ellipse
style="opacity:0.28999999;fill:#55d400;fill-opacity:1;stroke-width:0.26458332"
id="path815"
cx="67.646141"
cy="132.01686"
rx="34.384239"
ry="29.69084" />
<rect
style="opacity:0.28999999;fill:#55d400;fill-opacity:1;stroke-width:0.26458332"
id="rect817"
width="55.300468"
height="51.627373"
x="68.360352"
y="86.001167" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,18 @@
ls answers.txt
cd ..
ls
cd Grepregexp/
ls
more answers.txt
tail answers.txt
wc -l answers.txt
grep [^star][^star][^star][^star][^star] answers.txt
grep [^star][^star][^star][^star][^star] answers.txt | wc -l
grep [^star][^star][^star][^star][^stare] answers.txt | wc -l
grep [^star][^star][^star][^star][^stare] answers.txt
grep [^star][^star][^star][^star][^stare] answers.txt | grep e
grep [^star][^star][^star][^star][^stare] answers.txt | grep e | wc -l
grep [^star][^star][^star][^star][^stare] answers.txt | grep e | more
grep [^starpoxye][^starpoxy][^starpoxy][^starpoxy][^starepoxy] answers.txt | grep e | wc -l
grep [^starpoxye][^starpoxy][^starpoxy][^starpoxy][^starepoxy] answers.txt | grep e
grep [^starpoxyefil][^starpoxyfil][^starpoxyfile][^starpoxyfil][^starepoxyfil] answers.txt | grep e | grep d

View File

@@ -0,0 +1,43 @@
1937 grep the american-english | more
1938 grep the american-english
1939 grep ^the american-english
1940 grep the$ american-english
1941 grep her american-english
1942 grep cow american-english
1943 ls
1944 head answers.txt
1945 tail answers.txt
1946 tail wordle-allowed-guesses.txt
1947 egrep [^st] answers.txt
1948 egrep [^st] american-english
1949 egrep [^st]5 american-english
1950 egrep [^st]^5 american-english
1951 egrep [^st]**5 american-english
1952 egrep ([^st])5 american-english
1953 egrep ^[^st][^st][^st][^st]$ american-english
1954 egrep ^[^st][^st][^st][^st][^st]$ american-english
1955 egrep ^[abcdefghijklmnopqruvwxyz][abcdefghijklmnopqruvwxyz][abcdefghijklmnopqruvwxyz][abcdefghijklmnopqruvwxyz][abcdefghijklmnopqruvwxyz]$ american-english
1956 egrep ^[^st][^st][^st][^st][^st]* answers.txt
1957 egrep ^[^st][^st][^st][^st][^st]$ answers.txt
1958 egrep ^[^st][^st][^st][^st][^st]* answers.txt
1959 egrep ^[^st][^st][^st][^st][^st]$ answers.txt
1960 egrep ^[^st][^st][^st][^st][^st]$ answers.txt | wc -l
1961 wc -l answers.txt
1962 egrep ^[^st][^st][^sta][^str][^ste]$ answers.txt | wc -l
1963 egrep ^[^st][^st][^sta][^str][^ste]$ answers.txt
1964 egrep ^[^st][^st][^sta][^str][^ste]$ answers.txt | grep a
1965 egrep ^[^st][^st][^sta][^str][^ste]$ answers.txt | grep a | grep r
1966 egrep ^[^st][^st][^sta][^str][^ste]$ answers.txt | grep a | wc -l
1967 egrep ^[^st][^st][^sta][^str][^ste]$ answers.txt | grep a | grep r | wc -l
1968 egrep ^[^st][^st][^sta][^str][^ste]$ answers.txt | grep a | grep r | grep e | wc -l
1969 egrep ^[^st][^st][^sta][^str][^ste]$ answers.txt | grep a | grep r | grep e
1970 egrep ^[^strc]a[^starc]er$ answers.txt
1971 egrep ^[^strce]a[^starcg]er$ answers.txt
1972 egrep ^[^strcemk]a[^starcgmk]er$ answers.txt
1973 egrep ^[^strcemkp]a[^starcgmkp]er$ answers.txt
1974 egrep [violent]* american-english
1975 egrep ^[violent]*$ american-english
1976 egrep ^[violent]*$ american-english | grep v
1977 egrep ^[violent][violent][violent][violent][violent]*$ american-english | grep v
1978 alias
1979 grep ^[violent][violent][violent][violent][violent]*$ american-english | grep v

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\catcode `:\active
\catcode `;\active
\catcode `!\active
\catcode `?\active
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\babel@aux{french}{}

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff