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 藍冰飛寒 閱讀(187) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 泗水县| 锦州市| 环江| 缙云县| 清丰县| 麻栗坡县| 金乡县| 敦煌市| 独山县| 丰台区| 旺苍县| 红河县| 台江县| 吐鲁番市| 肥城市| 中山市| 汨罗市| 望都县| 前郭尔| 邮箱| 景洪市| 桂东县| 鸡西市| 门源| 肇东市| 玉树县| 新乡市| 克东县| 定边县| 分宜县| 漾濞| 汉源县| 苍南县| 绵阳市| 海林市| 瑞昌市| 广汉市| 子长县| 江阴市| 将乐县| 兰溪市|