BlogJava 聯系 聚合 管理  

          Blog Stats

          News

           

          藍冰飛寒個人獨立博客地址,www.uphenan.com

          隨筆檔案

          文章檔案


          藍冰飛寒

          用心去做每一件事情

          最近在想一個N元一次不定方程解法的C#實現, 覺得傳統的遞歸耗時太多, 當然, 還有其他很多的方法實現, 但在我, 都不是很容易理解

          剛剛嘗試了一個比較巧妙的方法, 先給出不定方程的一個特解, 然后在這個特解上通過加或減來實現每個解的重新賦值

          在以下給出的代碼中, iSeed用來控制隨機數的隨機產生域, 而且內嵌越深, 最后不定方程的解的分布越均勻

          這個程序其實就是求不定方程的正整數解, 也相當于正整數的拆分

          /*
          *以下是代碼, 這里N取10
          *不定方程為: X0+X1+X2+X3+X4+X5+X6+X7+X8+X9=100, (Xn為正整數)
          *程序中給出了一個特解, 大家想想就會明白為什么取這一組特解
          *
          */

          using System;
          public class CalcPuzzle
          {
                  public static void Main()
                  {
                          int[] result=new int[]{1,1,1,1,1,1,1,1,1,91};
                          int[] rdnGen=new int[9];
                          Random rdn=new Random();
                          Random rdnIndex=new Random();

                          int iSeed=rdnIndex.Next(90);
                          Console.WriteLine("The iSeed is: {0}",iSeed);
                          for(int i=0;i<9;i++)
                          {
                                  rdnGen[i]=rdn.Next(iSeed);
                                  Console.WriteLine(rdnGen[i]);
                          }

                          for(int i=0;i<9;i++)
                          {
                                  int index=result[9]-rdnGen[i];
                                  if(index<2)
                                  {
                                          break;
                                  }
                                  else
                                  {
                                          result[9]-=rdnGen[i];
                                          result[i]+=rdnGen[i];
                                  }
                          }

                          Console.WriteLine("The result is: ");
                          for(int i=0;i<10;i++)
                          {
                                  Console.WriteLine(result[i]);
                          }
                  }
          }
          Tags -
          文章來源:http://www.tt-shopping.com/kevinlau/read.php/98.htm
          posted on 2009-05-04 18:56 藍冰飛寒 閱讀(186) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 博白县| 扶余县| 仁化县| 偃师市| 新河县| 宣恩县| 西青区| 新干县| 且末县| 西城区| 七台河市| 北海市| 竹溪县| 双牌县| 祥云县| 重庆市| 大关县| 德江县| 新安县| 界首市| 秀山| 永德县| 商水县| 台州市| 中西区| 旬邑县| 肥东县| 琼中| 句容市| 叙永县| 云和县| 墨竹工卡县| 桂平市| 广灵县| 乐安县| 株洲市| 昌都县| 辽阳市| 黄冈市| 日照市| 潜江市|