Articles of langage

Quelle est la différence entre une «fermeture» et un «bloc»?

J’ai constaté que beaucoup de gens utilisent les mots « fermer» et « bloquer» de manière interchangeable. La plupart de ces personnes ne peuvent pas expliquer de quoi elles parlent. Certains programmeurs Java (même ceux de consultants très coûteux) parlent de classes internes anonymes comme “blocs” et “fermetures” – mais je sais que ce n’est […]

Comment trouver deux points les plus éloignés?

C’est une question qui m’a été posée lors d’un entretien d’embauche il y a quelque temps. Et je n’arrive toujours pas à trouver une réponse raisonnable. La question est: vous recevez un ensemble de points (x, y). Trouvez 2 points les plus éloignés. Distant les uns des autres. Par exemple, pour les points: (0,0), (1,1), […]

Comment arrondir les flottants aux entiers tout en préservant leur sum?

Disons que j’ai un tableau de nombres à virgule flottante, dans un ordre sortingé (disons croissant), dont la sum est connue sous la forme d’un entier N Je veux “arrondir” ces nombres à des nombres entiers tout en laissant leur sum inchangée. En d’autres termes, je recherche un algorithme qui convertit le tableau de nombres […]

Pourquoi le problème du sac à dos est-il un pseudo-polynôme?

Je sais que Knapsack est NP-complet alors qu’il peut être résolu par DP. Ils disent que la solution DP est pseudo-polynomial , car elle est exponentielle dans la “longueur de l’entrée” (c’est-à-dire le nombre de bits requirejs pour encoder l’entrée). Malheureusement je ne l’ai pas compris. Quelqu’un peut pseudo-polynomial il m’expliquer lentement ce pseudo-polynomial ?

Pourquoi les noms de membres C # ne peuvent-ils pas être les mêmes que le nom de type englobant?

En C #, le code suivant ne comstack pas: class Foo { public ssortingng Foo; } La question est: pourquoi? Plus exactement, je comprends que cela ne comstack pas parce que (je cite): les noms de membres ne peuvent pas être les mêmes que leur type OK bien. Je comprends cela, je ne le ferai […]

Pourquoi l’ajout de null à une chaîne est-il légal?

L’article MSDN sur les bases de la chaîne montre ceci: ssortingng str = “hello”; ssortingng nullStr = null; ssortingng emptyStr = “”; ssortingng tempStr = str + nullStr; // tempStr = “hello” bool b = (emptyStr == nullStr);// b = false; ssortingng newStr = emptyStr + nullStr; // creates a new empty ssortingng int len […]

Qu’est-ce que l’opérateur “” en C ++?

Je suis tombé sur cette page où l’auteur parle de la standardisation de l’opérateur “” : La décision du comité de normalisation C ++ de normaliser l’ operator “” était […] De quoi parle-t-il? Je ne trouve aucune information à ce sujet et je ne comprends pas ce que cela pourrait impliquer (surcharge pour des […]

Le compilateur est-il autorisé à optimiser les allocations de mémoire hors tas?

Considérez le code simple suivant qui utilise new (je sais qu’il n’y a pas de delete[] , mais cela ne concerne pas cette question): int main() { int* mem = new int[100]; return 0; } Le compilateur est-il autorisé à optimiser le new appel? Dans mes recherches, g ++ (5.2.0) et Visual Studio 2015 n’optimisent […]

Fonction de création de roues de couleur

C’est quelque chose que j’ai pseudo-résolu plusieurs fois et pour lequel je n’ai jamais vraiment trouvé de solution. Le problème est de trouver un moyen de générer N couleurs, qui soient aussi distinctes que possible, où N est un paramètre.

Qu’est-ce qu’une langue régulière?

J’essaie de comprendre le concept des niveaux de langage (régulier, sans contexte, sensible au contexte, etc.). Je peux rechercher cela facilement, mais toutes les explications que je trouve sont une charge de symboles et parlent d’ ensembles . J’ai deux questions: Pouvez-vous décrire en mots ce qu’est un langage régulier et en quoi les langues […]