none
PB PRATIQUE AVEC LINQ RRS feed

  • Discussion générale

  • Bonjour

    je chercha avec linq a creer un algorithme qui calcule toutes les solutiions de:

    somme des Xi (tableau de variable) *A(i)(tableau de coefficients entiers =N entier

    pour cela mon idee est de

    creer une liste ls des nb de 0 a N

    et pour tout X[i] en ls

    where A(i)*x(i)==N

    comment avec linq creer une boucle qui "balaye toutes les variables du tableau X[i] en ls

    et calcule la solution generale somme(X[i]*A[i]==N)

    merci a toute reponse

    amitie jp

    faire une requete pour X(i) en

    mercredi 13 octobre 2010 11:59

Toutes les réponses

  • j'aurais fait cela avec une boucle for ...

    avec linq ... 

       int[] X = new[] { 4, 5, 66, 3, 5, 8 };
       int[] A = new[] { 45, 66, 4, 5, 98, 6 };
       int[] inter = new[] { 0, 1, 2, 3, 4, 5 };
       int v = (from i in inter select X[i]*A[i]).Sum();
    

     

    je ne crois pas qu'il est possible de récupérer le numéro d'itération car il semble que linq manipule des itérators, donc je ne crois pas qu'on peut faire autrement ... 

    en tout cas c'est la première idée qui m'est venue, qui dit mieux ?


    PhD - Student
    jeudi 14 octobre 2010 23:05
  • Bonjour,

    Si vous utilisez le .NET Framework 4.0, vous pouvez utiliser la méthode Zip() comme ceci :

    int[] X = new[] { 4, 5, 66, 3, 5, 8 };
    int[] A = new[] { 45, 66, 4, 5, 98, 6 };
    
    int[] résultat = X.Zip(A, (x, a) => x * a).ToArray();
    

    Cordialement


    Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    dimanche 17 octobre 2010 16:16
    Modérateur
  • Bonjour Jean-Pierre,

     

     Si je comprends bien, vous voulez faire la somme seulement des variables dont le produit est égale a N ?

    A(i) * x(i) == N 

     

    Est-ce correcte ?

    Sinon, je vous remercie de préciser plusieurs détails ou de marquer une des réponses antérieures, si elles répondent a votre question.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Café des usages

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     

    mardi 19 octobre 2010 12:29