日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一时技痒 不用模拟第一印象的构造 通过三个观察得来的规律解决N^2个往返接力问题...

發(fā)布時間:2024/9/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一时技痒 不用模拟第一印象的构造 通过三个观察得来的规律解决N^2个往返接力问题... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
問題原題? 見銀河使者的隨筆? http://www.cnblogs.com/nokiaguy/archive/2009/07/24/1530139.html
第一印象? 我得到了和他一樣的解法,就是用斜切片,每一層的 x-1和y+1? 來控制順序?qū)憯?shù)字的筆落在哪一個坐標(biāo)。
但是根據(jù)一段時間的觀察? 我發(fā)現(xiàn)了幾個規(guī)律 可以讓我們不用模擬整個順序的流

首先我們觀察每一個切片
13410112122363755
25912202335385456
681319243439535772
7141825334052587173
15172632415159707485
16273142506069758486
28304349616876838794
29444862677782889395
45476366788189929699
466465798090919798100
我們發(fā)現(xiàn) 在 n,n 坐標(biāo)上的每一個數(shù)字都是這個切片對稱 而且是平均值。 經(jīng)過簡單的計算? 我們發(fā)現(xiàn) 1-n個切片的平均值 都是(n*n +1)/2

繼續(xù)觀察 又發(fā)現(xiàn)規(guī)律了。? 這個矩陣對角對稱的任意兩個格子?? 正好是距離整個數(shù)列中心距離相等的兩點? 比如1和100 20和81?? 他們的和必為 max*max +1

這樣我們只要能推算出某一行或者某一列的值?? 就可以通過上面兩個特征來生成整個矩陣了哦



但是這個矩陣的行列太亂了 很難找出規(guī)律?這個時候就要考慮更簡單的模型
我們看看非首尾接力的矩陣

1

1 2
3

1 2 4
3 5
6

1 2 4 7
3 5 8
6 9
10

有沒有發(fā)現(xiàn)? 粗體的數(shù)字 剛好是之前所有斜切片的總和?
那么 順序矩陣和接力矩陣 有什么異同呢?

13410112122363755
25912202335385456
681319243439535772
7141825334052587173
15172632415159707485
16273142506069758486
28304349616876838794
29444862677782889395
45476366788189929699
466465798090919798100

我們可以把接力矩陣當(dāng)成隔行反轉(zhuǎn)的順序矩陣。這樣我們就得到了一個在 x,y軸上擺動的參考值。? 有了參考值? 就可以根據(jù)前兩點進行矩陣生成了

Code
???static?void?Main(string[]?args)
????????{
????????????var?max?
=?11;
????????????
int?[,]?mx=new?int?[max,max];
????????????var?sideval?
=?0;
????????????
for?(var?seed?=?0;?seed?<?max;?seed++)
????????????{
???????????????
????????????????
int?parevalue?=?(seed?+?1)?*?(seed?+?1)?+?1;//規(guī)律1?中心軸對稱兩數(shù)之和等于層數(shù)平方+1?
????????????????bool?isOdd?=?seed?%?2?==?1;

????????????????sideval?
=?sideval?+?seed?+?1;???//規(guī)律2?兩邊至少有一個數(shù)字為?1+2+3+4++n
????????????????for?(var?fillseed?=?seed;?fillseed?>=0;?fillseed--)
????????????????{

????????????????????
int?row,?col;
????????????????????
if?(!isOdd)
????????????????????{
????????????????????????row?
=?fillseed;
????????????????????????col?
=?seed?-?fillseed;

????????????????????}
????????????????????
else
????????????????????{
????????????????????????col?
=?fillseed;
????????????????????????row?
=?seed?-?fillseed;
????????????????????}
????????????????????
//規(guī)律1?中心軸對稱兩數(shù)之和等于層數(shù)平方+1?
????????????????????mx[col,?row]?=?sideval?-?fillseed;
????????????????????mx[row,?col]?
=?parevalue?-?mx[col,?row];??
????????????????????
//規(guī)律3?中心對稱的和為?max*max+1
????????????????????mx[max?-?col?-?1,?max?-?row?-?1]?=?max?*?max?+1?-?mx[col,?row];
????????????????????mx[max?
-?row?-?1,?max?-?col?-?1]?=?max?*?max?+?1?-?mx[row,?col];

????????????????}

????????????}

????????????
for?(var?x?=?0;?x?<?max;?x++)
????????????{
????????????????
for?(var?y?=?0;?y?<?max;?y++)
????????????????{
????????????????????Console.Write(
string.Format?("?{0:d3}"?,mx[x,?y]));
????

????????????????}

????????????????Console.WriteLine();

????????????}

????????????????Console.Read();

????????}

解法有很多種? 這種無疑是很生澀的。 作為面試題目的話? 并不建議寫這種考官很難理解的解法,會有小鞋

作為頭腦風(fēng)暴? 防止老年癡呆 這個還是有一定意義的

轉(zhuǎn)載于:https://www.cnblogs.com/waynebaby/archive/2009/07/25/1530653.html

總結(jié)

以上是生活随笔為你收集整理的一时技痒 不用模拟第一印象的构造 通过三个观察得来的规律解决N^2个往返接力问题...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。