User:Map

From miki
Revision as of 17:23, 29 March 2020 by Map (talk | contribs) (→‎Python)
Jump to navigation Jump to search

Informatique

Voir liens dans notes téléphone.

Visualisations algorithmes:

https://github.com/trekhleb/javascript-algorithms

https://github.com/trekhleb/javascript-algorithms/tree/master/src/algorithms/sorting/insertion-sort

https://github.com/trekhleb/javascript-algorithms/tree/master/src/algorithms/sorting/quick-sort

Visualisations data structures:

https://www.cs.usfca.edu/%7Egalles/visualization/Algorithms.html

With code source:

https://homepages.bluffton.edu/%7Enesterd/java/SortingDemo.html

Timsort:

https://skerritt.blog/timsort-the-fastest-sorting-algorithm-youve-never-heard-of/

Appendre avec des exemples:

https://learnxinyminutes.com/

https://learnxinyminutes.com/docs/c/

https://learnxinyminutes.com/docs/python/


Autres sources:

Openclassroom

Tutorialspoint

Project Euler

Franceioi

UVA online judge

uhunt online judge

Kattis

Codeforces

cppreference.com

cplusplus.com

beoitraining

beoitraining github https://github.com/be-oi/beoi-training

https://cses.fi/book/book.pdf

Commandes terminal

  • cd pour "change directory"

par exemple cd Documents/maths/envoi5exo7ofm2016-2017 Si on tape seulement cd, on se retrouvera dans "home".

  • pwd pour "print working directory" indique où on se trouve actuellement.
  • On peut essayer les commandes help ou man ("man" pour "manuel") pour avoir des informations/expliquations sur une commande.
  • Si on veut exécuter le programme contenu dans le fichier "a.out" se trouvant dans "Documents/uva", et qu'on se trouve déjà dans "Documents/uva", on peut seulement taper <./a.out> suivi des input attendus par le programme. Sinon on tape cd Documents/uva/a.out suivi des entrées du programme.
  • la commande cat permet d'afficher le contenu d'un fichier. Par exemple cat
  • la commande ls pour "list" indiquera tous les fichiers se contenus dans le working directory (il y a aussi ls sousFichier).

la commande similaire ll pour "long list" donnera plus d'information sur les fichiers en question.

  • g++ -std=c++11 -Wall -Wextra -Wshadow -O2 a.cpp permet de compiler. ici on a compilé le fichier "a.cpp", qui nous a donné le fichier "a.out", contenant le programme exécutable par l'ordinateur.
  • ./a.out < ... > ...  : la premiere partie ./a.out est le programme qu'on exécute. La 2e partie entre les "<" et ">" est le fichier dans lequel on prend les entrées et la partie après ">" est le fichier dans lequel on va enregistrer les sorties.
  • à écrire: commande pour créer (joe nomfichier je crois), renommer (mv nomfichier nouveaunomfichier ?), afficher (cat nomfichier), et comparer (et copier, effacer (rm nomfichier je crois), sauver (^KX je crois) ...) fichiers contenant un input, contenant l'output correspondant et l'output de référence auquel on veut le comparer (copier le makefile et ensuite utiliser la commande make dans le terminal).
  • copier-coller dans le terminal : Ctrl + shift + C/V.
  • mkdir nomDossier pour créer un dossier (make directory), rmdir to remove (only if empty), rmdir -rf nameDir va supprimer tout le dossier, avec les sous-fichiers (- indique qu'on va donner des options, r pour "récursif", f pour qu'aucune confirmation ne soit demandée (-> ATTENTION))
  • option -f pour qu'on ne demande pas de confirmation?
  • python3.8 a.py, python3.8 a.py < test1 > out1
  • diff out1 out2 pour comparer deux fichiers, diff -q out1 out2 (q pour "quiet", pour pas visualiser les détails, juste savoir si égaux ou non)
  • Deux commandes équivalentes: diff <(python3 prog.py < in1) out1 (donne l'output de prog.py à diff) et python3 prog.py < in1 | diff - out1
  • Le pipe | donne la sortie du programme de gauche comme entrée à celui de droite
  • for f in *.in; do echo "$f"; done

test.01.in test.02.in test.03.in

  • for f in *.in; do echo "$f" ; diff <(python3 prog.py < "$f") ${f/.in/.out}; done, "${f/.in/.out}" nous permet de prendre le contenu de la variable "f", de remplacer le ".in" par un ".out" et de renvoyer le résultat.
  • time Pour mesurer le temps mis par un programme pour s'exécuter, time ./prog <test.01.in
  • "shell" est le programme qui, dans le terminal, interprète les différentes commandes tappées. (bash est le language(?))
  • ulimit pour fixer une limite de mémoire (-s, -v, -a)


  • seq nbFin,seq nbDebut nbFin,seq nbDebut saut nbFin affichent des séquences (nbDebut, nbDebut+saut, ..., nbFin)
  • gedit nomFichier.txt pour ouvrir le fichier (et éventuellemnt le créer), gedit nomFichier.txt & pour pvr éditer le fichier tout en continuant à tapper des commandes
  • Editeurs emacs et vim: "pour Emacs, lancez emacs puis allez dans Help > Emacs Tutorial ; suivez alors le tutoriel.", "pour Vim, lancez vimtutor puis suivez le tutoriel."

Python

Voir notespython.py dans Unif/INFORMATICA.

Lire "Python in a Nutshell" (/smb/wolverine/family/archive/ebooks/python/Python_in_a_Nutshell_Third_Edition-PERSONAL_COPY.pdf) chapitres 3 et 4.

Apprendre avec des exemples: https://learnxinyminutes.com/docs/python/


command comment
# comment
help(input)
import math
from math import *
from math import sin, exp
from datetime import date
(importer des modules: voir 2.2.7 et 7.6 dans livre unif)
ici aussi on importe tout le module
on importe qu'une partie du module
isdigit() (class str) "123".isdigit()
endswith(suffix) (class str) str.endswith(s,suffix)
split() (class str) str.split(s), s.split(), "123".split()
"\u0021" returns '!'
chr(code) donne le caractère de code unicode donné
ord(char) done l'unicode du caractère donné
assert < Boolean Expression >
random() from module random
random.randint(a,b) random int between a and b
... ...

C++

Voir voc.cpp dans Documents/Informatique

Competitive programmer's handbook: https://cses.fi/book/book.pdf

Other book on competitive programming: https://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp1.pdf

C

Lire tout le livre "C - Kernighan and Ritchie" (à part éventuellement les annexes): /smb/wolverine/family/archive/ebooks/c_cpp/Kernighan_Ritchie_Language_C_2ed.pdf.

Apprendre avec des exemples: https://learnxinyminutes.com/docs/c/

LaTeX

Mais sur le wiki je peux utiliser MathJax __MATHJAX_DOLLAR__: $\sqrt{2 \over 3}$ et bien sûr en plus grand: $$\sqrt{2 \over 3}$$

Pour utiliser MathJax, je ne dois pas oublier d'ajouter le mot-clè __MATHJAX_DOLLAR__ quelque part sur la page, sinon les formules "en petit" avec un seul signe dollar ($...$) ne fonctionnent pas.

Références

Afficher des symboles spéciaux en latex: http://deuns.chez.com/latex/carac.html . Par exemple: utiliser \textasciicircum pour afficher ^!

Editer un texte

  • Il faut d'abord aller dans le bon répertoire: (symbole dollar) cd nom du répertoire. Ex.: (symbole dollar) cd Documents/maths/synthese/
  • (symbole dollar) history | grep make : chercher dans l'historique les commandes avec make
  • (symbole dollar) find -name "*.tex" | entr make : commande qu'on peut trouver grâce au point précédent: chaque fois qu'on sauve dans gedit, il fait "make" tout seul.
  • Pour changer le format d'une fenêtre avec le clavier numérique: ctrl+alt+1=quart d'écran bas-gauche, ctrl+alt+6=demi écran droit, ctrl+alt+5=centrer
  • exemples de figures en Latex: http://texample.net/

Maths

Mes liens

Sur ce wiki:

Mes notes

  • Accéder à wolverine: computer/smb/wolverine

Régler des problèmes d'impression

  • Aller sur internet
  • taper dans la barre de recherche "localhost:631"
  • Aller dans "Administration" (tout en haut de la page)
  • Aller ensuite dans "Printers > Manage printers
  • Cliquer sur "Canon-MG5300-series"
  • Parfois il faut changer "maintenance" en "resume"


En cas de manque d'espace de stockage : effacer les mises-à-jour précédentes

Aller dans ubuntu tweak, computer janitor, old kernel

MediaWiki

Keyboard shortcuts

Shift-Esc Show keyboard shortcuts
Shift-Esc-F Find, Search
Shift-Esc-P Show Preview
Shift-Esc-S Save page

WikiText

References


On peut écrire en gras (bold en anglais), en italic (euh... italic en anglais), en souligné (underlined).


Grâce à mon super papa, je peux aussi facilement écrire en couleur comme en rouge, en vert, en bleu. Trop fort mon papa.


J'ai faim, donc je mange des boulettes:

  • Une boulette
  • Deux boulettes
    • Une soupe de boulette, non... une sous-boulette.

Mais moi je trip avec des chiffres:

  1. Un chiffre.
  2. Deux chiffres.
    • Un chiffre à la boulette.

Pour des listes plus compliquées (c'est le mot officiel... liste):

  • ul cela veut unsorted list en anglais, en li cela veut dire list item. Plus facile pour retenir
    • Boulette my friend.
    • Bullet in english
    Un peu de texte décallé comme cela (parce qu'il y a un espace au début).
  • Plus encore.

Exemple de table avec MediaWiki:

Description You type You get
only at the beginning of the line
Definition list

;Definition
:item 1
:item 2

Definition
item 1
item 2


Git

Survival list:

cd ~/Documents/maths/synthese/
git status                      # Status (modified files, new files)
git st                          # (alias) same as "git status"
git diff                        # Show differences with last version
git diff --word-diff            # ... idem, but show *word* differences
git add -A                      # Add all differences to "index" 
git commit                      # Commit changes, enter a message
git ci                          # (alias) same as "git commit"
git ci -m "my message"          # Commit changes, with given message "my message"
git ci -am "my message"         # Add all files *AND* Commit changes, with given message
gitk                            # Show history of changes (graphical)
git ha                          # Show history of changes, summary (textual)
git ha --stat                   # Show history of changes, list of changed files (textual)