Bonjour,
je suis un peu perdue dans scilab et ne sait guère comment m'y prendre. Existe t-il des tutoriels ?
Sinon voilà ma question:
J'ai une série :
1 3 8 4 12 5 7 9 2 10 6 11
je dois la répéter dans le même ordre pour arriver à deux minutes
je peux répéter plusieurs fois le même nombre dans la série
et je peux combiner les nombres qui se touchent dans un sens ou dans un autre.
(la longueur de la série est donc variable)
ex : ça peut faire : 1 1 3 1 3 8 4 8 3 8 4 8 3 1 3 8 3 3 1 1 3 1 3 1 3 8 4 12 5 5 7 9 7 5 12 5 12 4 12 5 7 5 5 7 9 2 9 etc etc en utilisant tous les nombres...
Je voudrais pouvoir générer avec ces contraintes de départ des séries de nombres de cette sorte. Est-ce possible avec scilab ?
Je vous remercie.
Bonsoir,
Il te faudra faire un bout de code, mais c'est pas infaisable.
Mais deux questions, les nombres de ta suite représentent des temps en seconde j'imagine ? Et si c'est la cas, la somme doit faire exactement 120 ou cela peut-il être dépassé ?
non, les nombres de la suite ne représentent pas des temps en seconde. Par contre, des fréquences leur sont associées. Elles peuvent être fixes. Je peux aussi jouer sur les multiples. Mais ça n'a pas d'importance pour la suite numérique.
Pour les données temporelles, il faudrait que je fasse de même une suite de valeurs que je pourrais ensuite attribuer aux "notes" mais de façon indépendante. La valeur de chaque note doit varier dans le temps et ne pas être la même à chaque présentation.
La somme peut donc être dépassée.
Les valeurs de temps peuvent aller d'une demi seconde à 4 seconde. La suite de départ peut être plus courte que 12 peu importe. Après je les attribue aux chiffres.
La ligne de code s'inscrit-elle dans la console silab après la flèche et de quelle manière ?
Je ne suis pas sur de comprendre ton problème à résoudre. Donc je te propose cet ersatz de code qui créer une liste d'élément suivant ta procédure en dehors du critère de temps que tu ne définis pas assez clairement.
Bonjour et merci,
Je suis vraiment une béotienne ! Les lignes de codes que tu m'as données constitue l'environnement de travail c'est ça ?
Mais une fois copiées, je ne sais comment mettre en application...
merci pour ces lignes de code... quelqu'un vient m'aider chez moi ce soir pour les essayer, ça devrait être plus facile en direct...
Merci encore
Bonjour,
Après avoir chargé la fonction (à aprtir d'un fichier sce ou en copiant collant la fonction), il suffit de l'appeler en écrivant gen_st().
Si c'est que pour essayer ce premier jet, je ne pense pas que ça soit utile. Après, ça ne remplit pas toutes tes demandes car je n'ai pas le raccord entre la suite et le temps pour le faire. Donc, il pourra surement t'aider à compléter cette base^^. Sinon, comme tu la vois, cette procédure créer des séquence de longueurs aléatoires, donc, en faisant une étude probabiliste, tu peux ajuster la longueur moyenne avec les paramètres pr et ps. Mais je te conseille de rajouter une condition de taille max sur le while suivant tes besoins.
En tout cas, bonne chance (pour ton stage?).
bonsoir,
j'ai modifié un petit peu... cela peut-il fonctionner ainsi ?
function A=essai(n)
A(1) = 1;
S = [1 3 8 4 12 5 7 9 2 10 6 11];
x = 1;
while(t<12*n) //n nombre de fois pour répéter la suite
r = rand();
if(r < 0.33) then A(x)=S((x-1) modulo (length(S)) + 1);
end
elseif (r < 0.66) then A(x)=S(x modulo (length(S)) + 1);
end
else A(x)=S((x+1) modulo (length(S)) + 1);
end
x=x+1 ;
t=t+1 ; // compteur temps
end
endfunction
avec n= au moins 6 je pense
Il y a un deuxième calcul pour les durées : le même que celui là mais en changeant les nombres de la série ou S = [0,5 1 1,5 2 2,5 3 3,5 4]; (peut-être faut il mettre des points à la place des virgules)
avec n= au moins 10
C'est après que j'attribue les durées aux nombres.
ouI, c'est pour un stage... de danse ! et je fais la "musique". c'est un peu compliqué à expliquer là le pourquoi. En pratique, je chante les nombres avec des hauteurs définies et les durées que j'ai appliquées et je fais ensuite un montage). ça c'est la deuxième partie. Dans la première partie, la série est énoncée telle qu'elle plusieurs fois sur un son de téléphone avec une voix qui parle. Les chiffres représentent des directions dans l'espace pour la danseuse. La présentation a lieu samedi mais je dois fournir les sons mercredi à la danseuse...
Merci.
Bonsoir ecilamlac,
Ton programme a plusieurs problèmes.
Tout d'abord, tu utilises une variable t non déclaré qui apparemment à le même rôle que x (donc inutile dans cette version du programme).
Ensuite, tu utilises les randomise mais sans mettre de protection. En effet, tu peux aller à droite/rester/gauche mais toi dans ton programme, si tu arrives au premier rang et que tu vas à gauche, tu vas sur la dernière note de gauche. Alors, si c'est voulu ok, sinon, il faut bloquer ce passage.
Après, ta façon de calculer la position dans S est fausse. En effet, tu établies la valeur de A(t) non pas avec la valeur de A(t-1) comme tu devrais faire mais avec la valeur de l'itération. Ce qui peut crée de la discontinuité dans ta série.
Enfin, tu crées de série de 12n éléments au risque de ne pas utiliser toutes les notes (tu préfères l'utilisation de toutes les notes ou la taille de la série).
Et pour terminer, il ne faut pas utiliser 0.33/0.33/0.33 car statistiquement, tu ne vas rester autour de ta note initiale.
Si tu me décris exactement ce que tu attends de ce programme, je veux bien te le faire (vu ta formation, j'imagine que la programmation doit te réjouir modérément).
Courage^^
PS : Il y a aussi une mauvaise utilisation de la structure if then elseif else.
bon en effet, t n'a pas d'utilité.
La protection vers la gauche à partir du premier rang n'est pas nécessaire, il est possible d'aller sur la dernière note à gauche.
En effet, il ne doit pas y avoir de discontinuité dans la série, enfin je ne sais pas si c'est ça que ça veut dire mais on ne peut pas sauter de nombre.
et il faut en effet aussi utiliser toutes les notes, c'est ce qui est à privilégier et non pas la taille de la série. La taille de la série n'a pas d'importance enfin si, elle doit être suffisamment longue... les répétitions et les allées et venues peuvent être nombreuses. ça serait bien si la série était répétée deux fois, c'est-à-dire chaque nombre énoncé au moins deux fois. Si c'est suffisant. (très grosso modo, avec toute mon approximation musicale : il faudrait disons une centaine de nombre)
ok pour 0.33 !
Je ne suis pas sûre d'être encore très claire...
petit prob supplémentaire, il semblerait que scilab ne soit pas bien installé... enfin je suppose...
en tout cas, je n'arrive pas à le faire fonctionner.
Je m'y recolle demain.
Merci.
Je patauge dans la programmation mais ça ne me déplaît pas. là, c'est un peu dans l'urgence mais je m'y colle de façon sérieuse en septembre !
Ton code ne marche pas. C'est normal. Il y a des erreurs de sémentiques en plus d'algo.
Ce soir, je ne pense pas continuer (j'ai mon travail sur le gaz), mais je te posterai un code fonctionnel pendant ma pause de midi.
Tu verras la musique algorithmique, c'est sympa (j'en ai fait un peu pour m'amuser^^)
Bonne soirée.
Bonjour,
Voila une autre proposition en espérant respéter toutes les règles que tu souhaites. Le code fonctionne mais suivant les paramètres d'entrée peut produite (volontairement) une erreur.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :