Skip to content

Instantly share code, notes, and snippets.

Exercice : Notions fondamentales (3 points)

1. Pour de très grandes valeurs de $n$, lequel est plus efficace ? Justifiez votre réponse en utilisant la notion de complexité asymptotique. (0,5 pt)

Réponse :
L'algorithme B, avec complexité $O(n \log n)$, est asymptotiquement plus efficace que A en $O(n^2)$.

Justification formelle :
Par définition, $f(n) = O(g(n))$ signifie qu'il existe des constantes $c > 0$ et $n_0 > 0$ telles que pour tout $n \geq n_0$, $0 \leq f(n) \leq c \cdot g(n)$. Pour comparer, considérons le rapport $\lim_{n \to \infty} \frac{n^2}{n \log n} = \lim_{n \to \infty} \frac{n}{\log n} = \infty$ (par règle de Bernoulli ou croissance polynomiale vs logarithmique). Ainsi, pour tout $c > 0$, il existe $n_0$ tel que pour $n > n_0$, $n^2 > c \cdot n \log n$, rendant A plus lent.

1 Question simples (2 points)

1. Quelle est la différence entre une classe, un objet et une instance ?

  • Une classe est un plan, un modèle ou une description abstraite qui définit les attributs (données) et les méthodes (comportements) communs à un ensemble d’objets. Elle ne consomme pas de mémoire pour stocker des données, mais sert à définir la structure et le comportement des objets qui seront créés à partir d’elle.
  • Un objet est une entité concrète créée à partir d’une classe. Il possède ses propres valeurs pour les attributs définis par la classe et peut exécuter les méthodes de la classe. En Java, on crée un objet avec le mot-clé new.
  • Une instance est simplement un synonyme d’objet : c’est l’occurrence concrète d’une classe en mémoire. On dit qu’un objet est une instance d’une classe.

2. Comment fonctionne la destruction des objets en Java ?

Cette exam test votre analyse (nuancée) des algorithmes de tri, encourageant une réflexion sur les implications pratiques tout en restant accessible mais rigoureuse.

  • Durée : 1 heure 30 min
  • Note totale / maximale : 20 points
  • Des points bonus peuvent être cachés !
  • Les réponses doivent être argumentées
  • Prenez uniquement un stylo
  • Pour la rédaction des codes : ils peuvent être rédigés dans des langages du même paradigme que C, tels que Python, C++ ou Java. (Attention aux coûts cachés).

Question 1 (3 points)

— Durée : 1h30 heures — Note totale / maximale : 20 points — Des points bonus peuvent être cachés ! — Les réponses doivent être argumentées — Prenez uniquement un stylo

Pour la rédaction des codes, ils peuvent être rédigées dans des languages de même paradigme au C telque python, C++ ou Java. (attention aux coûts caché, particulièrement par la JVM).

Question 1 (2 points) : Notations asymptotiques

Voici les réponses structurées en deux parties : une réponse acceptée/demandé et une réponse idéale/difficile. Des éléments juste de la réponsse idéal permettait d'avoir des pts supplémentaire.

Question 1 (1 point) : Sortie du code

Quelle sera la sortie du code suivant ? Expliquez pourquoi, par étapes.

int x = 0;
int y = 3;

Examen : C/UNIX

Instructions

  • Durée : 2 heure
  • Note totale / maximal : 20 points
  • Des points bonnus peuvent être caché !
  • Les réponses doivent être argumentés

@Phirxian
Phirxian / accelerometer-detect-peak-for-sync
Last active February 20, 2023 17:10
detect-peak : small test to detect starting and ending peaks within accelerometer sequence
#!/usr/bin/python3
'''
This work was done to detect huge spikes on accelerometer sequences for synchronization.
The procedure consists of shaking all the sensors hard:
+ Shake all sensors for 2 seconds
+ Put all sensors down for 2 seconds
+ Repeat this procedure 6 times at the beginning of the experiment.
+ Repeat this procedure 5 times at the end of the experiment.
@Phirxian
Phirxian / color-distance-cie-2000.cl
Created December 29, 2021 11:35
OpenCL Delata CIE for color distance
#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
#define pi 3.14159265359f
__kernel void exec(__read_only image2d_t g_frame, __global const uchar *g_ref, __write_only image2d_t g_delta)
{
const sampler_t sampler = CLK_FILTER_NEAREST | CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE;
const int2 dim = get_image_dim(g_frame);
int2 coord = (int2)(get_global_id(0), get_global_id(1));
uint3 color = read_imageui(g_frame, sampler, coord).xyz;
@Phirxian
Phirxian / tensorflow_ridge.py
Last active December 29, 2021 11:35
tensorflow transforma : hessian matrix, minimum and maximum of eigen values to get ridge detection
#!/usr/bin/python3
import tensorflow as tf
import tensorflow_addons as tfa
import numpy as np
def gaussian_kernel(sigma, order, radius):
p = np.polynomial.Polynomial([0, 0, -0.5 / (sigma * sigma)])
x = np.arange(-radius, radius + 1)
phi_x = np.exp(p(x), dtype=np.double)
phi_x /= phi_x.sum()