Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.
AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.
En informatique, un générateur est une routine non transparente référentiellement, généralement sans argument. Comme son nom l'indique, elle sert à créer de nouveaux objets. Parmi les générateurs les plus classiques, on trouve les générateurs de nombres aléatoires. Un générateur suit le patron de conception itérateur, et permet en pratique de retourner un gros volume de données sans surcharger la mémoire vive, en la découpant en petits paquets. Certains générateurs parcourent virtuellement une liste infinie, définie algorithmiquement. De tels générateurs sont appelés compréhensions de listes. Une fonction renvoyant tour à tour les éléments de la suite de Fibonacci ou tous les nombres premiers serait un tel générateur. Généralement un générateur est implémenté avec la fonction yield : une instruction de programmation qui sert à imposer la constructivité d'une fonction. Son utilisation dans une fonction permet de retourner un générateur. Elle est plus souvent présente dans les langages à haut niveau comme Python, Ruby ou le C#. En C#, le mot-clé yield est suivi de return pour retourner la valeur suivante ou break pour interrompre l'itération. using System.Collections.Generic; public class Mots { // Tableau contenant des mots : public string[] mots; // Constructeur public Mots(params string[] mots) { this.mots = mots; } // Énumérer tous les mots jusqu'à trouver // le mot contenu dans le paramètre dernier (exclu) // ou la fin du tableau. public IEnumerable TousLesMotsJusquA(string dernier) { foreach(string mot in mots) if (mot.Equals(dernier)) yield break; // fin prématurée de l'itération else yield return mot; // élément de l'itération // fin normale de la boucle d'itération } } public class TestProgram { public static void Main() { Mots fruits = new Mots( "pomme", "poire", "abricot", "fraise", "kiwi" ); foreach( string fruit in fruits.TousLesMotsJusquA("fraise") ) Console.WriteLine( fruit ); } } Les générateurs sont apparus avec ES6 (en 2013). function* fourInts() { let int = 0; while (int < 4) { yield int; int++; } } const gen = fourInts(); // création alert(gen.
Olivier Sauter, Stefano Coda, Basil Duval
Olivier Sauter, Timothy Goodman, René Chavan, Jean-Daniel Landis, Francisco Sanchez
[2]Paolo Prandoni, [3]LCAV, EPFL
The Karplus-Strong algorithm is a simple method to generate synthetic
sounds with arbitrary pitch. In this notebook we will explore a few
variations of the method to illustrate some basic notions of
discrete-time signal processing.
In [1]:
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import IPython
In [2]:
plt.rcParams["figure.figsize"] [2]Paolo Prandoni, [3]LCAV, EPFL
In this notebook we will explore various ways to implement a system
that changes the voice of a speaker. Typical applications for these
techniques, strictly sorted by plausibility, include international spy
missions and prank telephone calls, and devices such as the one
displayed here can be easily bought on the web... or in a novelty shop.
No description has been provided for t