Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Math troubles

Math troubles

Scheduled Pinned Locked Moved C#
csharp
6 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    KaptinKrunch
    wrote on last edited by
    #1

    I'm looking for assistance with writing the following calculation in C# n! n_P_k = -------- (n - k)! and/or n! n_C_k = ---------- k!(n - k)! any ideas would be helpful! -- modified at 21:03 Friday 9th September, 2005

    S U A K 4 Replies Last reply
    0
    • K KaptinKrunch

      I'm looking for assistance with writing the following calculation in C# n! n_P_k = -------- (n - k)! and/or n! n_C_k = ---------- k!(n - k)! any ideas would be helpful! -- modified at 21:03 Friday 9th September, 2005

      S Offline
      S Offline
      S Senthil Kumar
      wrote on last edited by
      #2

      You only need a function to calculate the factorial of a number. You can then pass it n and n-k and then divide to get n_P_K. A simple implementation of factorial will look like this

      long factorial(int n)
      {
      int x = 1;
      for (int i = 2; i<=n; ++i) x*= i;
      return x;
      }

      Regards Senthil _____________________________ My Blog | My Articles | WinMacro

      1 Reply Last reply
      0
      • K KaptinKrunch

        I'm looking for assistance with writing the following calculation in C# n! n_P_k = -------- (n - k)! and/or n! n_C_k = ---------- k!(n - k)! any ideas would be helpful! -- modified at 21:03 Friday 9th September, 2005

        U Offline
        U Offline
        User 1959283
        wrote on last edited by
        #3

        using System; namespace fact { /// /// Summary description for Class1. /// class Class1 { /// /// The main entry point for the application. /// [STAThread] static void Main(string[] args) { //calculate n! Console.WriteLine("Enter the value of N"); int nFact = 1; int nComputeTo =int.Parse(Console.ReadLine()); int nCurDig = 1; for (nCurDig=1;nCurDig <= nComputeTo; nCurDig++) nFact *= nCurDig; int Nfactorial=nFact; Console.WriteLine("n! = "+nFact+"\n"); //calculate (n-k) ! Console.WriteLine("Enter the value of K"); int nFact1 = 1; int k=int.Parse(Console.ReadLine()); int nComputeTo1=nComputeTo-k;//n-k int nCurDig1 = 1; for (nCurDig1=1;nCurDig1 <= nComputeTo1; nCurDig1++) nFact1 *= nCurDig1; int NminusKfactorial=nFact1; try { int npk=Nfactorial/NminusKfactorial;//n_p_k=n!/(n-k)! Console.WriteLine("(n-k)! = "+nFact1+"\n"); Console.WriteLine(" n_p_k="+npk); Console.ReadLine(); } catch(DivideByZeroException ex) { Console.WriteLine(ex.Message); } catch(OverflowException ex) { Console.WriteLine(ex.Message); } catch(Exception e) { Console.WriteLine(e.Message); } } } }

        1 Reply Last reply
        0
        • K KaptinKrunch

          I'm looking for assistance with writing the following calculation in C# n! n_P_k = -------- (n - k)! and/or n! n_C_k = ---------- k!(n - k)! any ideas would be helpful! -- modified at 21:03 Friday 9th September, 2005

          A Offline
          A Offline
          Andy Brummer
          wrote on last edited by
          #4

          You can simplify your code for P(n, k):

          int P(n, k)
          {
          int value = 1;
          for(i = n; i>k; --i)
          value *= i;
          return value;
          }

          int C(n, k)
          {
          return P(n, k)/P(k,1);
          }


          I can imagine the sinking feeling one would have after ordering my book, only to find a laughably ridiculous theory with demented logic once the book arrives - Mark McCutcheon

          1 Reply Last reply
          0
          • K KaptinKrunch

            I'm looking for assistance with writing the following calculation in C# n! n_P_k = -------- (n - k)! and/or n! n_C_k = ---------- k!(n - k)! any ideas would be helpful! -- modified at 21:03 Friday 9th September, 2005

            K Offline
            K Offline
            KaptinKrunch
            wrote on last edited by
            #5

            Thanks for all the suggestions. Now another question. What data type should be used for numbers > long? The above examples work great for 10_P_4 but I'm getting divide by zero's for 100_P_10. I belive it's because 100! > long. using this routine ----- long x = 1; for(long i = 2; i <=n; ++i) x *= i; Debug info ---- n=100 i=2;x=2 i=3;x=6 i=4;x=24 i=5;x=120 i=6;x=720 i=7;x=5040 i=8;x=40320 i=9;x=362880 i=10;x=3628800 i=11;x=39916800 i=12;x=479001600 i=13;x=6227020800 i=14;x=87178291200 i=15;x=1307674368000 i=16;x=20922789888000 i=17;x=355687428096000 i=18;x=6402373705728000 i=19;x=121645100408832000 i=20;x=2432902008176640000 i=21;x=-4249290049419214848 i=22;x=-1250660718674968576 i=23;x=8128291617894825984 i=24;x=-7835185981329244160 i=25;x=7034535277573963776 i=26;x=-1569523520172457984 i=27;x=-5483646897237262336 i=28;x=-5968160532966932480 i=29;x=-7055958792655077376 i=30;x=-8764578968847253504 i=31;x=4999213071378415616 i=32;x=-6045878379276664832 i=33;x=3400198294675128320 i=34;x=4926277576697053184 i=35;x=6399018521010896896 i=36;x=9003737871877668864 i=37;x=1096907932701818880 i=38;x=4789013295250014208 i=39;x=2304077777655037952 i=40;x=-70609262346240000 i=41;x=-2894979756195840000 i=42;x=7538058755741581312 i=43;x=-7904866829883932672 i=44;x=2673996885588443136 i=45;x=-8797348664486920192 i=46;x=1150331055211806720 i=47;x=-1274672626173739008 i=48;x=-5844053835210817536 i=49;x=8789267254022766592 i=50;x=-3258495067890909184 i=51;x=-162551799050403840 i=52;x=-8452693550620999680 i=53;x=-5270900413883744256 i=54;x=-7927461244078915584 i=55;x=6711489344688881664 i=56;x=6908521828386340864 i=57;x=6404118670120845312 i=58;x=2504001392817995776 i=59;x=162129586585337856 i=60;x=-8718968878589280256 i=61;x=3098476543630901248 i=62;x=7638104968020361216 i=63;x=1585267068834414592 i=64;x=-9223372036854775808 i=65;x=-9223372036854775808 i=66;x=0 i=67;x=0 i=68;x=0 i=69;x=0 i=70;x=0 i=71;x=0 i=72;x=0 i=73;x=0 i=74;x=0 i=75;x=0 i=76;x=0 i=77;x=0 i=78;x=0 i=79;x=0 i=80;x=0 i=81;x=0 i=82;x=0 i=83;x=0 i=84;x=0 i=85;x=0 i=86;x=0 i=87;x=0 i=88;x=0 i=89;x=0 i=90;x=0 i=91;x=0 i=92;x=0 i=93;x=0 i=94;x=0 i=95;x=0 i=96;x=0 i=97;x=0 i=98;x=0 i=99;x=0 i=100;x=0 -- modified at 14:41 Saturday 10th September, 2005

            L 1 Reply Last reply
            0
            • K KaptinKrunch

              Thanks for all the suggestions. Now another question. What data type should be used for numbers > long? The above examples work great for 10_P_4 but I'm getting divide by zero's for 100_P_10. I belive it's because 100! > long. using this routine ----- long x = 1; for(long i = 2; i <=n; ++i) x *= i; Debug info ---- n=100 i=2;x=2 i=3;x=6 i=4;x=24 i=5;x=120 i=6;x=720 i=7;x=5040 i=8;x=40320 i=9;x=362880 i=10;x=3628800 i=11;x=39916800 i=12;x=479001600 i=13;x=6227020800 i=14;x=87178291200 i=15;x=1307674368000 i=16;x=20922789888000 i=17;x=355687428096000 i=18;x=6402373705728000 i=19;x=121645100408832000 i=20;x=2432902008176640000 i=21;x=-4249290049419214848 i=22;x=-1250660718674968576 i=23;x=8128291617894825984 i=24;x=-7835185981329244160 i=25;x=7034535277573963776 i=26;x=-1569523520172457984 i=27;x=-5483646897237262336 i=28;x=-5968160532966932480 i=29;x=-7055958792655077376 i=30;x=-8764578968847253504 i=31;x=4999213071378415616 i=32;x=-6045878379276664832 i=33;x=3400198294675128320 i=34;x=4926277576697053184 i=35;x=6399018521010896896 i=36;x=9003737871877668864 i=37;x=1096907932701818880 i=38;x=4789013295250014208 i=39;x=2304077777655037952 i=40;x=-70609262346240000 i=41;x=-2894979756195840000 i=42;x=7538058755741581312 i=43;x=-7904866829883932672 i=44;x=2673996885588443136 i=45;x=-8797348664486920192 i=46;x=1150331055211806720 i=47;x=-1274672626173739008 i=48;x=-5844053835210817536 i=49;x=8789267254022766592 i=50;x=-3258495067890909184 i=51;x=-162551799050403840 i=52;x=-8452693550620999680 i=53;x=-5270900413883744256 i=54;x=-7927461244078915584 i=55;x=6711489344688881664 i=56;x=6908521828386340864 i=57;x=6404118670120845312 i=58;x=2504001392817995776 i=59;x=162129586585337856 i=60;x=-8718968878589280256 i=61;x=3098476543630901248 i=62;x=7638104968020361216 i=63;x=1585267068834414592 i=64;x=-9223372036854775808 i=65;x=-9223372036854775808 i=66;x=0 i=67;x=0 i=68;x=0 i=69;x=0 i=70;x=0 i=71;x=0 i=72;x=0 i=73;x=0 i=74;x=0 i=75;x=0 i=76;x=0 i=77;x=0 i=78;x=0 i=79;x=0 i=80;x=0 i=81;x=0 i=82;x=0 i=83;x=0 i=84;x=0 i=85;x=0 i=86;x=0 i=87;x=0 i=88;x=0 i=89;x=0 i=90;x=0 i=91;x=0 i=92;x=0 i=93;x=0 i=94;x=0 i=95;x=0 i=96;x=0 i=97;x=0 i=98;x=0 i=99;x=0 i=100;x=0 -- modified at 14:41 Saturday 10th September, 2005

              L Offline
              L Offline
              leppie
              wrote on last edited by
              #6

              use decimal or double then :p xacc-ide 0.0.15 now with C#, MSIL, C, XML, ASP.NET, Nemerle, MyXaml and HLSL coloring - Screenshots

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • World
              • Users
              • Groups