J'ai un entretien technique en C++/algorithmique
unsigned count(unsigned n)
{
return (n == 0) ? 0 : 1 + count(n - 1);
}
int array[count(24)];
Les deux manières d’adapter la fonction pour que la déclaration du tableau soit possible.
Le 26 avril 2021 à 12:33:31 :
Le 26 avril 2021 à 12:21:39 :
A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:012 021 102 120 201 210
What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
9! possibilités, je ne vois pas l'astuce arithmétique pour être honnête
10! pas 9!
!!!!
Le 26 avril 2021 à 13:23:53 :
Tu veux des problèmes algorithmiques ? Tu vas en avoir ta dose tiens :Paris - Lyon : 512 km
Un train quitte Paris à 6 h. Il roule à 56 km/h.
Un autre train quitte Lyon à 8 h. Il roule à 69 km/h.
A quelle heure et à quelle distance de Paris vont-ils se rencontrer ?
Je vois ça comme un problème géométrique, trouver l'intersection de ces deux segments Tu défini les fonction affines des deux trajectoires et tu résous ensuite l'égalité, facile
Merci l’auteur ! J’ai aussi un entretien bientôt j’ai mis en fav le topic
Et petite question :
Quelle est la différence entre ces deux fonctions :
virtual void fct();
virtual void fct() = 0;
Le 26 avril 2021 à 13:32:04 :
Le 26 avril 2021 à 12:33:31 :
Le 26 avril 2021 à 12:21:39 :
A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:012 021 102 120 201 210
What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
9! possibilités, je ne vois pas l'astuce arithmétique pour être honnête
10! pas 9!
!!!!
le premier est biensur 0123456789
pour passer de 0xxxx a 1xxxx je dois "compléter toutes les combinaisons" de 123456789 qui sont 362 880
donc la permutation numéro 1 000 000 doit commencer par 2
je suis sur la bonne voie ?
Le 26 avril 2021 à 13:25:33 :
<code>unsigned count(unsigned n)
{
return (n == 0) ? 0 : 1 + count(n - 1);
}int array[count(24)];
</code>
Les deux manières d’adapter la fonction pour que la déclaration du tableau soit possible.
Soit tu mets le keyword constexpr à la déclaration de la fonction, soit tu passes par des templates :
template <unsigned N> unsigned count() { return count<N-1> + 1; }
template <> count<0> unsigned count() { return 0; }
D'ailleurs on préfèrera std::size_t à unsigned généralement
Le 26 avril 2021 à 13:26:21 :
Fonctionnement d'une lambda function ?
Un lambda c'est simplement un functor : une classe avec l'opérateur () surchargé (d'ailleurs à la compilation ça se transforme en une classe) ; on peut aussi passer certaines données à cette classe, par référence, copie etc. Très élégant pour nommer certaines sous-fonctions, ça rend le code plus clair Et on peut faire comme la STL on peut passer ces foncteurs à d'autres fonctions pour encore plus de généralisation/abstraction
La POO ça m'achève
A chaque fois je pense à https://www-users.cs.york.ac.uk/susan/joke/cpp.htm ça me bute
Le 26 avril 2021 à 13:37:44 :
Le 26 avril 2021 à 13:32:04 :
Le 26 avril 2021 à 12:33:31 :
Le 26 avril 2021 à 12:21:39 :
A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:012 021 102 120 201 210
What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
9! possibilités, je ne vois pas l'astuce arithmétique pour être honnête
10! pas 9!
!!!!le premier est biensur 0123456789
pour passer de 0xxxx a 1xxxx je dois "compléter toutes les combinaisons" de 123456789 qui sont 362 880
donc la permutation numéro 1 000 000 doit commencer par 2
je suis sur la bonne voie ?
on a 2013456789 qui est la n°725761
pour passer à 21xxxxx il faut faire 8! permutations
on s'approche de 1 000 000 sans dépasser
725761+6*8!=967689
on est donc à 20813456789
Le 26 avril 2021 à 13:34:31 :
Merci l’auteur ! J’ai aussi un entretien bientôt j’ai mis en fav le topicEt petite question :
Quelle est la différence entre ces deux fonctions :
virtual void fct(); virtual void fct() = 0;
Fonction virtuelle pure dans la seconde déclaration, il n'y a pas de définition de cette fonction dans la classe
Le 26 avril 2021 à 13:37:44 :
Le 26 avril 2021 à 13:32:04 :
Le 26 avril 2021 à 12:33:31 :
Le 26 avril 2021 à 12:21:39 :
A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:012 021 102 120 201 210
What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
9! possibilités, je ne vois pas l'astuce arithmétique pour être honnête
10! pas 9!
!!!!le premier est biensur 0123456789
pour passer de 0xxxx a 1xxxx je dois "compléter toutes les combinaisons" de 123456789 qui sont 362 880
donc la permutation numéro 1 000 000 doit commencer par 2
je suis sur la bonne voie ?
https://www.geeksforgeeks.org/lexicographic-permutations-of-string/ C'est le même problème ici.
Le 26 avril 2021 à 13:44:39 :
La POO ça m'achèveA chaque fois je pense à https://www-users.cs.york.ac.uk/susan/joke/cpp.htm ça me bute
Ce petit Bjarne toujours au-dessus, je me rappellerai toujours de “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.”
Données du topic
- Auteur
- aigrevin
- Date de création
- 26 avril 2021 à 12:18:42
- Nb. messages archivés
- 168
- Nb. messages JVC
- 164