Cet exercice d'ALGORITHMIE est pour les CODEURS du forum

navet-navrant
2021-06-21 20:12:52

Soit la fonction getRandomNumberFromStream(stream) { ... }

L'argument stream est un flux de nombres entiers positifs, contenant au moins un nombre.

Grâce à la méthode stream.next() vous récupérez soit le nombre suivant, soit null si le stream est terminé.

Écrivez le code (ou pseudo-code) de la fonction telle qu'elle renvoie aléatoirement et avec équiprobabilité l'un des nombre du stream.

:d) La complexité spatiale de la fonction doit être en O(1)

Bonne chancehttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

PS : si vous débutez vous pouvez ignorer la contrainte sur la complexité spatiale, mais l'exercice, déjà simpliste, devient alors trivialhttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

LESJULFS
2021-06-21 20:13:45

print(Hello world!)https://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

navet-navrant
2021-06-21 20:13:58

Le 21 juin 2021 à 20:13:45 LESJULFS a écrit :
print(Hello world!)https://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Zelker4
2021-06-21 20:15:15

Flemme mais une petite fonction récursive et ça marche tout seul.

Piola-Kirchhoff
2021-06-21 20:16:30

On a le droit de faire une copie profonde de stream?https://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

navet-navrant
2021-06-21 20:17:25

Le 21 juin 2021 à 20:15:15 Zelker4 a écrit :
Flemme mais une petite fonction récursive et ça marche tout seul.

Ah bon, avec une complexité spatiale en O(1) ?https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Le 21 juin 2021 à 20:16:30 Piola-Kirchhoff a écrit :
On a le droit de faire une copie profonde de stream?https://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

Oui mais je vois pas à quoi ça pourrait te servirhttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Zelker4
2021-06-21 20:18:55

Le 21 juin 2021 à 20:17:25 :

Le 21 juin 2021 à 20:15:15 Zelker4 a écrit :
Flemme mais une petite fonction récursive et ça marche tout seul.

Ah bon, avec une complexité spatiale en O(1) ?https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Pas vu l'exigence de complexité spatiale, du coup la même chose en utilisant une variable tampon et une boucle à la place de la récursivité.

Piola-Kirchhoff
2021-06-21 20:19:38

[20:17:25] <navet-navrant>

Le 21 juin 2021 à 20:15:15 Zelker4 a écrit :
Flemme mais une petite fonction récursive et ça marche tout seul.

Ah bon, avec une complexité spatiale en O(1) ?https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Le 21 juin 2021 à 20:16:30 Piola-Kirchhoff a écrit :
On a le droit de faire une copie profonde de stream?https://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

Oui mais je vois pas à quoi ça pourrait te servirhttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Je me sert de la copie pour calculer le nombre n d'entiers dans le flux puis je tire un nombre k entre 1 et n et applique la fonction k foishttps://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

KDA-Akali
2021-06-21 20:19:46

return stream.next(stream);

Thyristor
2021-06-21 20:20:13

L'op qui veut qu'on fasse ses devoirs a sa place :rire:

GOSWELL
2021-06-21 20:21:03

aléatoirement

tu veux dire pseudo-aléatoire ? ou alors c'est un piège ?

MorningStarr
2021-06-21 20:21:10

return stream.next(); :hap:

navet-navrant
2021-06-21 20:21:28

Le 21 juin 2021 à 20:19:38 Piola-Kirchhoff a écrit :

[20:17:25] <navet-navrant>

Le 21 juin 2021 à 20:15:15 Zelker4 a écrit :
Flemme mais une petite fonction récursive et ça marche tout seul.

Ah bon, avec une complexité spatiale en O(1) ?https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Le 21 juin 2021 à 20:16:30 Piola-Kirchhoff a écrit :
On a le droit de faire une copie profonde de stream?https://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

Oui mais je vois pas à quoi ça pourrait te servirhttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Je me sert de la copie pour calculer le nombre n d'entiers dans le flux puis je tire un nombre k entre 1 et n et applique la fonction k foishttps://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

Comment tu calcules le nombre d'entiers dans le flux au juste ?https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Erismature
2021-06-21 20:22:45

et si le stream est infini on est sensé faire quoi ?

Piola-Kirchhoff
2021-06-21 20:23:05

[20:21:28] <navet-navrant>

Le 21 juin 2021 à 20:19:38 Piola-Kirchhoff a écrit :

[20:17:25] <navet-navrant>

Le 21 juin 2021 à 20:15:15 Zelker4 a écrit :
Flemme mais une petite fonction récursive et ça marche tout seul.

Ah bon, avec une complexité spatiale en O(1) ?https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Le 21 juin 2021 à 20:16:30 Piola-Kirchhoff a écrit :
On a le droit de faire une copie profonde de stream?https://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

Oui mais je vois pas à quoi ça pourrait te servirhttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Je me sert de la copie pour calculer le nombre n d'entiers dans le flux puis je tire un nombre k entre 1 et n et applique la fonction k foishttps://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

Comment tu calcules le nombre d'entiers dans le flux au juste ?https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

J'incrémente un compteur jusqu'à ce que next renvoie null, le O(1) est respectéhttps://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

Macaque_Bullish
2021-06-21 20:23:09

Le 21 juin 2021 à 20:21:28 :

Le 21 juin 2021 à 20:19:38 Piola-Kirchhoff a écrit :

[20:17:25] <navet-navrant>

Le 21 juin 2021 à 20:15:15 Zelker4 a écrit :
Flemme mais une petite fonction récursive et ça marche tout seul.

Ah bon, avec une complexité spatiale en O(1) ?https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Le 21 juin 2021 à 20:16:30 Piola-Kirchhoff a écrit :
On a le droit de faire une copie profonde de stream?https://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

Oui mais je vois pas à quoi ça pourrait te servirhttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Je me sert de la copie pour calculer le nombre n d'entiers dans le flux puis je tire un nombre k entre 1 et n et applique la fonction k foishttps://image.noelshack.com/fichiers/2016/50/1481994659-mathematicienrisitas.png

Comment tu calcules le nombre d'entiers dans le flux au juste ?https://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Ben on les compte

SolmaToreador
2021-06-21 20:23:36

C'est juste une variante à la con du Reservoir Sampling. Je ne perdrais pas mon temps là dessus.

navet-navrant
2021-06-21 20:23:58

Le 21 juin 2021 à 20:20:13 Thyristor a écrit :
L'op qui veut qu'on fasse ses devoirs a sa place :rire:

Ca fait belle lurette que j'ai plus de devoirs à fairehttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Le 21 juin 2021 à 20:21:03 GOSWELL a écrit :

aléatoirement

tu veux dire pseudo-aléatoire ? ou alors c'est un piège ?

Utilise Math.random() et casse pas les noisetteshttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

Le 21 juin 2021 à 20:22:45 Erismature a écrit :
et si le stream est infini on est sensé faire quoi ?

Rien n'est infini à part l'univers et la bêtise humainehttps://image.noelshack.com/fichiers/2016/34/1472411294-yeux2.png

MerguezEdition
2021-06-21 20:25:23

L'auteur qui parle d'aléa :rire:

Pseudo-aléa :ok:

QueLouisFerdin_
2021-06-21 20:25:50

Ça veut dire quoi complexité spatiale de 1? On a le droit de declarer qu'une variable?

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.