BlogJava 聯(lián)系 聚合 管理  

          Blog Stats

          News

           

          藍(lán)冰飛寒個(gè)人獨(dú)立博客地址,www.uphenan.com

          隨筆檔案

          文章檔案


          藍(lán)冰飛寒

          用心去做每一件事情

          最近在想一個(gè)N元一次不定方程解法的C#實(shí)現(xiàn), 覺得傳統(tǒng)的遞歸耗時(shí)太多, 當(dāng)然, 還有其他很多的方法實(shí)現(xiàn), 但在我, 都不是很容易理解

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

          在以下給出的代碼中, iSeed用來控制隨機(jī)數(shù)的隨機(jī)產(chǎn)生域, 而且內(nèi)嵌越深, 最后不定方程的解的分布越均勻

          這個(gè)程序其實(shí)就是求不定方程的正整數(shù)解, 也相當(dāng)于正整數(shù)的拆分

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

          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 -
          posted on 2009-05-04 18:56 藍(lán)冰飛寒 閱讀(191) 評論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 临泉县| 沁源县| 永川市| 沅江市| 古丈县| 封丘县| 寻乌县| 新闻| 楚雄市| 增城市| 南京市| 汽车| 灵山县| 台东县| 桐城市| 天津市| 晋州市| 南通市| 乐昌市| 醴陵市| 来宾市| 青岛市| 虎林市| 汝阳县| 神农架林区| 深州市| 洮南市| 安泽县| 禄丰县| 保康县| 新沂市| 托克逊县| 尖扎县| 高淳县| 班戈县| 铁岭县| 平昌县| 陵水| 建宁县| 巴塘县| 宣化县|