二、規則組織數學模型的建立

一、規則組織數學模型的建立

規則組織滿足兩個不變:1,組織點運動規律不變、2,飛數不變的單系統組織
即:若知道組織點運動規律和飛數即可確定唯一一個組織。
在這里插入圖片描述
3上2下,組織循環數為3+2=5,經紗循環數=緯紗循環數=5,故意匠格的大小為5×5。
其對應的組織圖為:在這里插入圖片描述
很容易理解:從下向上、從左向右
第一列:三個黑兩個白,(例如:黑為經組織點,白為緯組織點)
第二列:由于飛數是2,這里需要將每個位置都向上移動兩個單位
第三列:以此類推,超出的組織圖大小的組織點,從最底下向上依次補齊即可

為了讓計算機能夠識別,這時候需要引入二維數組進行標識,規定:在二維數組中,值為1時表示經組織點,值為0時表示緯組織點。
矩陣中的列數=經紗循環數,行數=緯紗循環數
這里使用N1代表行數即緯紗循環數,N2表示列數即經紗循環數。

通過二維數組:a[N1][N2]即可唯一表示一個單系統組織;即矩陣和組織圖之間時一一對應的關系。

經紗循環數即在一個組織中包含經紗的根數;同理,緯紗循環數即在一個組織中包含緯紗的根數。

對于組織而言,只有兩種形式:1,經紗在緯紗上,稱之為經組織點、1,緯紗在經紗上,稱之為緯組織點

二、矩陣的第一列賦值

組織的運動規律使用一個分式進行表示。
組織的一般形式在這里插入圖片描述

c1上d1下,c2上d2下,c3上d3下…以此類推
ci表示連續的經組織點,di表示連續的緯組織點

分析:當得到組織圖時,如何定義出對應的二維矩陣

1,首先,組織圖都是從下往上,從左往右定義的,即左下角為起始位置,然后向上。對于一個規則組織來說,行數和列數是相同的,經紗循環數=緯紗循環數。
2,當拿到組織的一般形式時,需要先確定二維矩陣的大小,即行數和列數;只需要將所有的分子和分母都加到一塊即可得到二維矩陣的大小。

例如:3上2下2上1下,飛數為1的組織一般形式
在這里插入圖片描述
之所以是8×8的二維矩陣,是因為3+2+2+1=8
故可以求出其經緯紗循環數N2和N1,即在這里插入圖片描述

3,確定二維矩陣的大小后,開始求其中的每一個元素的值

想要畫出組織圖所對應的二維矩陣,需要先將第一列的值確定出來。
若取組織圖一般表達式,該分式的分子賦值為1,分母賦值為0
由于組織圖是由下向上進行表示的,組織中的組織點與二維數組中點的坐標剛好相反。
第一列的元素所對應的組織圖的位置為:N1-i+1

例如:N1=5
組織的一般表達式為:在這里插入圖片描述
即,3上2下,上賦值為1,下賦值為0
在這里插入圖片描述
3上,3個1 是先賦值給a5、a4、a3;2下,2個0再賦值給a2、a1
即對應的次序為N1-i+1

組織一般表達式(i代表緯紗,次序從下往上)運算二維矩陣具體點
i=1(第一根緯紗,最下面)5-1+1=5a5
i=25-2+1=4a4
i=35-3+1=3a3
i=45-4+1=2a2
i=55-5+1=1a1
4,確定表達式通式從而確定第一列所對應的矩陣值

在這里插入圖片描述其中,x和y僅為兩個做判斷的任意變量,初始值均為0。當取分子時,x+1,y不變;取分母時,y+1,x不變
例如:在這里插入圖片描述

(經組織循環數=緯組織循環數)N1=N2=3+2+2+1=8c1=3d1=2c2=2d2=1初始值:x=y=0運算二維數組對應值
i=1(第一根緯紗)c1=3(分子c1=3取下來,需要依次賦3個1)因為c1是分子,x=x+1=1,y=y=0N1-i+1=8因為c1是分子,故a8=1
i=2c1=c1-1=2因為沒有取新的c和新的d,故x和y均保持不變,x=x=1,y=y=0N1-i+1=8-2+1因為c1是分子,故a7=1
i=3c1=c1-1=1因為沒有取新的c和新的d,故x和y均保持不變,x=x=1,y=y=0N1-i+1=8-2+1因為c1是分子,故a6=1
i=4c1=c1-1=1-1=0,因為c1=0,故需要取下一個值,即d1=2d1=2因為d1是分母,x=x=1,y=y+1=0+1=1N1-i+1=8-4+1因為d1是分母,故a5=0
i=5d1=d1-1=2-1=1因為沒有取新的c和新的d,故x和y均保持不變,x=x=1,y=y=1N1-i+1=8-5+1因為d1是分母,故a4=0
i=6d1=d1-1=1-1=0,因為d1=0,故需要取下一個值,即c2=2c2=2因為c2是分子,x=x+1=1+1=2,y=y=1N1-i+1=8-6+1因為c2是分子,故a3=1
i=7c2=c2-1=2-1=1因為沒有取新的c和新的d,故x和y均保持不變,x=x=2,y=y=1N1-i+1=8-7+1因為c2是分子,故a2=1
i=8c2=c2-1=1-1=0,因為c2=0,故需要取下一個值,即d2=1d2=1因為d2是分母,x=x=2,y=y+1=1+1=2N1-i+1=8-8+1因為d2是分母,故a1=0
5,確定第二列矩陣值

第一列矩陣值確定之后,第二列的矩陣值主要取決于飛數,飛數為1,上移1格、飛數為-1,下移1格。
其中飛數實際上可以取任何整數,為了避免飛數過大造成不必要的影響,這里人為規定飛數f的取值范圍為:在這里插入圖片描述
例如:若N1=3時,飛數f的取值為+1、-1、+2、-2;以在這里插入圖片描述2上1下為例。
( a )在這里插入圖片描述飛數f=+1
( b )在這里插入圖片描述飛數f=+2
( c )在這里插入圖片描述飛數f=-1
( d )在這里插入圖片描述飛數f=-2

不難看出,f=+1和f=-2、f=+2和f=-1所對應的組織圖是一樣的。

+1 = 3 + (-2)、+2 = 3 + (-1)
故可以得出結論:在這里插入圖片描述
其中f‘為負飛數,f為正飛數;通過這個表達式即可將所有的負飛數均轉化為正數,方便后續的處理。

6,確定第二列矩陣值與第一列矩陣值的關系式

例如:在這里插入圖片描述在這里插入圖片描述

a[1][1] = 0a[1][2]=a[1+2][2-1]=a[3][1]=1a[1][3]=a[1+2][3-1]=a[3][2]=1
a[2][1] = 1a[2][2]=a[2+2-3][2-1]=a[1][1]=0a[2][3]=a[2+2-3][3-1]=a[1][2]=1
a[3][1] = 1a[3][2]=a[3+2-3][2-1]=a[2][1]=1a[3][3]=a[3+2-3][3-1]=a[2][2]=0

由規律可得:在這里插入圖片描述,其中i=1,2,3,…,m;j=1,2,3…,n;規則組織中m=n。

7,舉例推理驗證:

在這里插入圖片描述
解析:拿到這個分式的時候,先寫出組織的一般形式,在這里插入圖片描述可得:m=n=1、c1=2、d1=1、f=+2(右斜飛數為正,左斜飛數為負)
在這里插入圖片描述
首先,求解第一列元素值:a[3][1]=1,a[2][1]=1,a[1][1]=0,即在這里插入圖片描述

a[3][2]=a[3+2-3][2-1]=a[2][1]=1、a[2][2]=a[2+2-3][2-1]=a[1][1]=0、a[1][2]=a[1+2][2-1]=a[3][1]=1在這里插入圖片描述
a[3][3]=a[3+2-3][3-1]=a[2][2]=0、a[2][3]=a[2+2-3][3-1]=a[1][2]=1、a[1][3]=a[1+2][3-1]=a[3][2]=1
在這里插入圖片描述

三、知道組織點對應的矩陣值關系之后,開始編寫程序

1,規則組織的程序流程圖如下:

在這里插入圖片描述

2,代碼實現:

#include <iostream>
#include<stdio.h>
using namespace std;int main()
{int i,j,N1,N2,f,m;//因為規則組織是方陣,m=n,故這里只定義m即可int c[10],d[10],a[100][100];//c數組主要存儲c1、c2、c3...,d數組主要存儲d1、d2、d3...printf("please input m:");scanf("%d",&m);//確定矩陣的大小for(i=0;i<m;i++)//依次輸入ci和di的值,其中i∈[0,m),也就總共m個,數組下標從0開始的而已。{printf("please input C[%d]:",i+1);scanf("%d",&c[i]);printf("please input D[%d]:",i+1);scanf("%d",&d[i]);}N1=0;//緯紗循環數初始化,之后需要累加for(i=0;i<=m-1;i++)//確定緯組織循環數,也就是Σ(ci+di),分子分母之和即可{N1=N1+c[i]+d[i];//確定出緯紗循環數N1}N2=N1;//因為是規則組織故其對應的經緯組織循環數相等printf("please input f:");//輸入飛數scanf("%d",&f);if(f<0)f=N1+f;//若飛數為負數,通過公式轉換成正數/*
對第1列進行賦值
*/i=1;//先對第一列賦值,從第一列的第一行開始for(j=0;j<m;j++){while(c[j]>0){a[N1-i+1][1]=1;//因為是分子,所有值都賦值為1c[j]--;//用一次減一次i++;//下一行進行賦值}while(d[j]>0){a[N1-i+1][1]=0;//因為是分母,所有值都賦值為0d[j]--;i++;}}/*
對2到N1列 進行賦值
*/for(j=2;j<=N2;j++){for(i=1;i<=N1;i++){if((i+f)>N1) a[i][j] = a[i+f-N1][j-1];else a[i][j]=a[i+f][j-1];}}/*
輸出二維數組a[i][j]
*/for(i=1;i<=N1;i++){for(j=1;j<=N2;j++){printf("%5d",a[i][j]);}printf("\n");}getchar();//吞一個回車鍵return 0;
}

運行效果如下:在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378115.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378115.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378115.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode 3:無重復字符的最長子串 思考分析

給定一個字符串&#xff0c;請你找出其中不含有重復字符的 最長子串 的長度。 示例 1: 輸入: “abcabcbb” 輸出: 3 解釋: 因為無重復字符的最長子串是 “abc”&#xff0c;所以其長度為 3。 示例 2: 輸入: “bbbbb” 輸出: 1 解釋: 因為無重復字符的最長子串是 “b”&#x…

e-r模型教案高中計算機,《ER模型1》[數據庫][計算機]教案.doc

《ER模型1》[數據庫][計算機]教案一、復習舊知識點1、數據庫概念設計的意義是什么&#xff1f;2、概念設計的基本步驟是什么&#xff1f;二、明確學習目標1、E-R模型的基本元素2、屬性的分類三、重點、難點E-R模型的基本元素基本屬性和復合性四、講授知識點&#xff0c;指導自學…

(譯)利用ASP.NET加密和解密Web.config中連接字符串

介紹 這篇文章我將介紹如何利用ASP.NET來加密和解密Web.config中連接字符串 背景描述 在以前的博客中&#xff0c;我寫了許多關于介紹 Asp.net, Gridview, SQL Server, Ajax, JavaScript等的文章。大多數情況下&#xff0c;我都把數據庫的連接字符串放在了web.config中。其中包…

lock_sh 示例_帶有示例的Python date __str __()方法

lock_sh 示例Python date .__ str __()方法 (Python date.__str__() Method) date.__str__() method is used to manipulate objects of date class of module datetime. date .__ str __()方法用于操作模塊datetime的date類的對象。 It uses a date class object and return…

美國人看見的是友情,中國人看見的是忠誠

美國人看見的是友情&#xff0c;中國人看見的是忠誠 這是一個人狗情未了的感人事件。 一個即將死去的人&#xff0c;總有未了的心愿難以割舍&#xff0c;來自美國的凱文麥克萊恩實現了他的臨終愿望&#xff0c;而他的最后愿望就是與自己的愛犬見上最后一面。 現年57歲的凱文麥克…

PyCharm安裝及配置

一、下載PyCharm和相關工具 qoi8 二、安裝PyCharm 先不要運行PyCharm 三、將jar包放到PyCharm安裝目錄的bin文件夾下 三、找到pycharm64.exe.vmoptions和pycharm.exe.vmoptions配置文件 四、編輯這兩個文件&#xff0c;在這兩個文件最后一行加入下載好的jar包文件路徑 -ja…

LeetCode 239:滑動窗口最大值 思考分析

給定一個數組 nums&#xff0c;有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。 返回滑動窗口中的最大值。 進階&#xff1a; 你能在線性時間復雜度內解決此題嗎&#xff1f; 示例: 輸入: num…

計算機論文范文1500,電子商務畢業論文范文1500字

電子商務畢業論文范文1500字時間稍縱即逝&#xff0c;充滿意義的大學生活即將結束&#xff0c;畢業前要通過最后的畢業論文&#xff0c;畢業論文是一種有計劃的檢驗學生學習成果的形式&#xff0c;那么問題來了&#xff0c;畢業論文應該怎么寫&#xff1f;下面是小編為大家整理…

為什么要使用反射機制

1、反射的構造過程 直接構造 1、加載程序集 2、根據類名構造 反射構造 1、加載程序集 2、查找需要構造類的類名 3、根據類名構造 注意&#xff1a; 能不用反射還是別用反射,因為畢竟要以性能做為代價, 不過在某些特定場合,還是只能用它,所以要自己根據實際情況來…

java uuid靜態方法_Java UUID timestamp()方法與示例

java uuid靜態方法UUID類timestamp()方法 (UUID Class timestamp() method) timestamp() method is available in java.util package. timestamp()方法在java.util包中可用。 timestamp() method is used to return the timestamp linked with this UUID. timestamp()方法用于返…

ANT:編譯SWC

編譯SWC使用的是compc任務&#xff0c;compc需要幾個重要的參數&#xff1a; 1、輸出路徑 2、包含的類 3、源路徑 其中第2個參數是比較難拿到的&#xff0c;需要使用ANT的幾個其他的方法來將路徑轉換了類的完整路徑&#xff0c;先看完整的代碼&#xff1a; <target name&quo…

ssm整合事務失效

<!-- 開啟注解驅動的事務管理 --><tx:annotation-driven transaction-manager"transactionManager"/>原因&#xff1a;未開啟spring事務驅動

五、規則組織的衍生組織——緯山形組織數學模型的建立

基礎概念公式推到可參考該專欄下的前幾篇博文。 緯山形組織圖&#xff1a; 觀察可知&#xff1a;緯山形組織圖下半部分是右斜組織&#xff0c;上半部分是左斜組織。右斜和左斜按照垂直方向進行排列。 該圖是一個2上3下2上1下(從最下面一行從左往右觀看) 特點&#xff1a;每一…

批處理設置計算機不休眠,虛擬機狀態下怎樣設置電腦不休眠

簽中&#xff0c;在“啟用休眠”項打勾即可啟用休眠功能。如果此項不可用&#xff0c;則說明你的電源不支持休眠功能。或如果你安裝了還原精靈等一些保護軟件&#xff0c;也無法啟用休眠功能。2 打開電腦的休眠功能后&#xff0c;在“電源選項”的“電源使用方案”標簽中&#…

HDU 2836 Traversal 簡單DP + 樹狀數組

題意&#xff1a;給你一個序列&#xff0c;問相鄰兩數高度差絕對值小于等于H的子序列有多少個。 dp[i]表示以i為結尾的子序列有多少&#xff0c;易知狀態轉移方程為&#xff1a;dp[i] sum( dp[j] ) 1;( abs( height[i] - height[j] ) < H ) 由abs( height[i] - height[j] …

劍指 Offer 57 - II. 和為s的連續正數序列 思考分析

輸入一個正整數 target &#xff0c;輸出所有和為 target 的連續正整數序列&#xff08;至少含有兩個數&#xff09;。 序列內的數字由小到大排列&#xff0c;不同序列按照首個數字從小到大排列。 示例 1&#xff1a; 輸入&#xff1a;target 9 輸出&#xff1a;[[2,3,4],[4…

java uuid靜態方法_Java UUID compareTo()方法與示例

java uuid靜態方法UUID類compareTo()方法 (UUID Class compareTo() method) compareTo() method is available in java.util package. compareTo()方法在java.util包中可用。 compareTo() method is used to compare two UUID objects or in other words, it is used to compar…

hdu 1214

找規律的題目。如果不是圓環形狀的話&#xff08;也就是n個人排成直線&#xff09;&#xff0c;完全調換順序需要(n-1)*n/2次交換&#xff1b;為環形的時候&#xff0c;可能不需要這么多&#xff0c;因為調換有了兩個方向。我們記直線時n個人需要的交換次數為g(n)(n-1)*n/2&…

六、規則組織的衍生組織——緯向破斜組織數學模型的建立

基礎概念公式推到可參考該專欄下的前幾篇博文。 緯向破斜組織圖&#xff1a; 下半部分(從左往右)&#xff1a;&#xff0c;3上2下2上1下&#xff0c;右斜&#xff0c;飛數為1 上半部分(從下往上)&#xff1a;&#xff0c;2上2下1上3下。左斜&#xff0c;飛數為-1 通過分析可…

車牌識別與計算機編程,基于MATLAB的車牌識別程序詳解.ppt

基于MATLAB的車牌識別程序詳解自定義一個字符函數&#xff0c;用來從車牌區域中提取出7個字符&#xff0c;其中利用切割函數來進行切割。 程序&#xff1a;function [word,result]getword(d) word[];flag0;y18;y20.5; while flag0 [m,n]size(d);%將d的尺寸存入m n wide0; while…