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

          Blog Stats

          News

           

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

          隨筆檔案

          文章檔案


          藍(lán)冰飛寒

          用心去做每一件事情

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

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

          在以下給出的代碼中, iSeed用來(lái)控制隨機(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)冰飛寒 閱讀(187) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 上高县| 莱芜市| 敦化市| 科尔| 和政县| 灵川县| 普兰店市| 雷州市| 平湖市| 黄石市| 凤城市| 葫芦岛市| 北安市| 赤壁市| 江山市| 安丘市| 丰镇市| 万载县| 搜索| 玛曲县| 南昌市| 西乌珠穆沁旗| 宣威市| 嘉定区| 赫章县| 界首市| 青河县| 梅州市| 澳门| 曲沃县| 榆社县| 和顺县| 信丰县| 沐川县| 密山市| 福州市| 双流县| 万山特区| 离岛区| 辉南县| 泸州市|