十、非規則組織分析及其數學模型——鋸齒形斜紋組織

鋸齒形斜紋組織圖:在這里插入圖片描述

分析
在這里插入圖片描述
前半齒長度k,表示山谷到山峰的列數,也就是鋸齒的寬度;
鋸齒飛數s,表示山峰到山峰的行數,也就是鋸齒的高度。
在這里插入圖片描述

起始點相差4格,也就是第一部分整體向上移動4格即可得到第二部分,同樣道理,第二部分向上移動4格即可得到第三部分在這里插入圖片描述

一、求出N1和N2

在這里插入圖片描述
其中W為以一個完整循環中的鋸齒數;V為一個鋸齒內的經紗根數。
在這里插入圖片描述
在這里插入圖片描述
鋸齒形之所以有個上升的趨勢,是因為下降的高度和上升的高度有一個差即S,也就是少下降了S根,故上升的山峰高度差為S。
核心代碼如下:

    a=N1;b=s;while(a!=b)                      //當a==b時結束{if(a>b)                          //如果a>b,則a=a-b{a=a-b;}else                            //否則b>a,b=b-a{b=b-a;}}w=N1/a;v=(2*k-2)-s;N2=w*v;printf("w:%d\n",w);printf("v:%d\n",v);printf("N1:%d\n",N1);printf("N2:%d\n",N2);

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

二、求F1第一段鋸齒

可以把整體分為多個部分,每個鋸齒的行為N1,列為V。即每一個鋸齒都為N1×V的子矩陣,最終的組織矩陣就是多個子矩陣并列即可。
為了形成鋸齒,K和S之間必須滿足以下關系:在這里插入圖片描述
1,對第1列元素賦值
在這里插入圖片描述,其中i=1,2,3…,N1;j=2,3,4…,K

2,對第2到k列進行賦值
在這里插入圖片描述,其中i=2,3…,N1;j=2,3,4…,K

3,對第k+1列到V列進行賦值
Ⅰ轉變飛數f,由正轉為負:在這里插入圖片描述
Ⅱ之后再進行賦值在這里插入圖片描述,i=1,2,3,…,N1;j=K+1,K+2,…,V;

核心代碼如下:

/*
對第1列進行賦值
*/i=1;//先對第一列賦值,從第一列的第一行開始for(j=0;j<=m-1;j++){while(c[j]>0){x[N1-i+1][1]=1;//因為是分子,所有值都賦值為1c[j]--;i++;}while(d[j]>0){x[N1-i+1][1]=0;//因為是分母,所有值都賦值為0d[j]--;i++;}}/*
對第2列到第k列 進行賦值
*/for(j=2;j<=k;j++){for(i=1;i<=N1;i++){if((i+f)>N1) x[i][j] = x[i+f-N1][j-1];else x[i][j]=x[i+f][j-1];}}f=N1-f;//求kj列到N2列右半部分的飛數需要將負值轉變為正數
/*
對第k+1列到V列 進行賦值
*/for(j=k+1;j<=v;j++){for(i=1;i<=N1;i++){if((i+f)>N1) x[i][j] = x[i+f-N1][j-1];else x[i][j]=x[i+f][j-1];}}

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

三、根據F1,求F2第二段鋸齒以及剩余的鋸齒的值

鋸齒飛數s為正向上移動;s為負向下移動在這里插入圖片描述
在這里插入圖片描述,其中i=1,2,…, N1;j=1,2,…,V

優化公式:在這里插入圖片描述,其中i=1,2,....,N1;j=1,2,...,v;k=1,2,...,w-1;

程序流程圖如下:
在這里插入圖片描述

四、最終優化代碼如下:

#include <iostream>
#include<stdio.h>
using namespace std;int main()
{int i,j,N1,N2,m,w,v,k,s,a,b,f;int c[10],d[10],x[100][100]={0};printf("please input m:");scanf("%d",&m);for(i=0;i<m;i++){printf("please input C[%d]:",i+1);scanf("%d",&c[i]);printf("please input D[%d]:",i+1);scanf("%d",&d[i]);}printf("please input K:");scanf("%d",&k);printf("please input S:");scanf("%d",&s);printf("please input f:");scanf("%d",&f);N1=0;for(i=0;i<=m-1;i++){N1=N1+c[i]+d[i];}/*
求N1和s的最大公約數
*/a=N1;b=s;while(a!=b)                      {if(a>b)                         {a=a-b;}else                            {b=b-a;}}w=N1/a;v=(2*k-2)-s;N2=w*v;/*
對第1列進行賦值
*/i=1;//先對第一列賦值,從第一列的第一行開始for(j=0;j<=m-1;j++){while(c[j]>0){x[N1-i+1][1]=1;//因為是分子,所有值都賦值為1c[j]--;i++;}while(d[j]>0){x[N1-i+1][1]=0;//因為是分母,所有值都賦值為0d[j]--;i++;}}/*
對第2列到第k列 進行賦值
*/for(j=2;j<=k;j++){for(i=1;i<=N1;i++){if((i+f)>N1) x[i][j] = x[i+f-N1][j-1];else x[i][j]=x[i+f][j-1];}}f=N1-f;
/*
對第k+1列到V列 進行賦值
*/for(j=k+1;j<=v;j++){for(i=1;i<=N1;i++){if((i+f)>N1) x[i][j] = x[i+f-N1][j-1];else x[i][j]=x[i+f][j-1];}}for(k=1;k<=w-1;k++){for(j=1;j<=v;j++){for(i=1;i<=N1;i++){if(i+s>N1){x[i][k*v+j]=x[i+s-N1][(k-1)*v+j];}else x[i][k*v+j]=x[i+s][(k-1)*v+j];}}}/*
輸出二維數組a[i][j]
*/for(i=1;i<=N1;i++){for(j=1;j<=N2;j++){printf("%5d",x[i][j]);}printf("\n");}getchar();return 0;
}

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

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

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

相關文章

Linq lamdba GroupJoin外連接示例

其實用from..Linq語句做外連接簡單而且便于理解&#xff0c;我個人使用lamdba純粹是技術上的追求吧 DataTable exceldtnew DataTable();DataTable nomacdtnew DataTable();exceldt exceldt.AsEnumerable().GroupJoin(nomacdt.AsEnumerable(), a > a.Field<String>(&q…

ajax為什么有時候不行,為什么不能用ajax調用

Ajax取值時出現未知的運行時錯誤的解決方法在Ajax里經常會通過innerHTML來改變界面&#xff0c;這個比使用DOM要簡單一些。比如&#xff1a;element.innerHTML "put code here"不過&#xff0c;在IE中&#xff0c;有時候會出現"未知的運行時錯誤(unknown runti…

Java Hashtable size()方法與示例

哈希表類size()方法 (Hashtable Class size() method) size() method is available in java.util package. size()方法在java.util包中可用。 size() method is used to return the number of key-value pairs that exist in this Hashtable. size()方法用于返回此哈希表中存在…

十一、非規則組織分析及其數學模型——蘆席斜紋組織

蘆席斜紋組織&#xff1a; 該組織是由左斜和右斜有機的結合在一塊的&#xff0c;因為其外觀酷似蘆席故稱之為蘆席斜紋組織。 織物組織效果&#xff1a; 所需參數&#xff1a; 其基層組織采用雙面加強型斜紋&#xff0c;即分子和分母是相同的組織點&#xff0c;例如2上2下(2個經…

LeetCode 18. 四數之和 思考分析(雙指針解)

目錄需要注意的幾點1、去除剪枝操作2、去重操作的細節code以及效果&#xff1a;題目給定一個包含 n 個整數的數組 nums 和一個目標值 target&#xff0c;判斷 nums 中是否存在四個元素 a&#xff0c;b&#xff0c;c 和 d &#xff0c;使得 a b c d 的值與 target 相等&#…

圖解DotNet框架之一:編譯與執行引擎(上)

眾所周知,DotNet框架是非常龐大的,光項目創建時的種類就有WPF,WCF,WF這三種最新的技術,還有以前的Web,WinForm,Service,Mobile等等. 這么復雜和龐大的框架,用文字來描述是遠遠不夠的,所以我準備寫一系列圖文并茂的文章,把我所知道的所有Net框架中的東西全部串聯起來,希望可以給…

【Kissy WaterFall】實行手動加載數據

前言&#xff1a;由于Kissy WaterFall默認是監聽滾動事件來實現數據動態加載的&#xff0c;但是有一些情況要用到手動加載數據。以下是使用Kissy WaterFall實現手動加載數據的方法。 最終實現效果&#xff1a;點擊”逛更多的商店“會動態加載數據 步驟&#xff1a; 當一頁數據加…

web服務器文檔根目錄在哪里,web服務器根目錄在哪

web服務器根目錄在哪 內容精選換一換SSL證書通過在客戶端瀏覽器和Web服務器之間建立一條SSL安全通道(訪問方式為HTTPS)&#xff0c;實現數據信息在客戶端和服務器之間的加密傳輸&#xff0c;可以防止數據信息的泄露。SSL保證了雙方傳遞信息的安全性&#xff0c;而且用戶可以通過…

console java_Java Console writer()方法與示例

console java控制臺類writer()方法 (Console Class writer() method) writer() method is available in java.io package. writer()方法在java.io包中可用。 writer() method is used to get a distinct PrintWriter object linked with this Console. writer()方法用于獲取與此…

二、圖片加載與保存

一、基本概念 1&#xff0c;什么是圖片&#xff1f; 答&#xff1a;圖像是結構化存儲的數據信息 2&#xff0c;圖像的屬性 答&#xff1a;1、通道數目&#xff0c;2、寬與高&#xff0c;3、像素數據&#xff0c;4、圖像類型 二、加載顯示圖像并保存 import cv2 import nump…

LeetCode 206. 反轉鏈表 思考分析

題目 反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 進階: 你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題&#xff1f; 迭代雙指針 從某公眾號&#xff08;代碼隨想錄&#xff09;搬過來的gif圖&…

hdu 2846 Repository 字典樹的變形

Repository Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)                  Total Submission(s): 1129 Accepted Submission(s): 382 Problem DescriptionWhen you go shopping, you can search in repository…

怎樣看虛擬主機的服務器,虛擬主機怎么查看服務器類型

虛擬主機怎么查看服務器類型 內容精選換一換使用華為云提供的公共鏡像制作私有鏡像時&#xff0c;您需先購買云主機等云資源時鏡像選擇公共鏡像、云服務器類型建議統一選擇“s3 (通用計算型)”&#xff0c;在云主機安裝部署完商品&#xff0c;然后參照以下方式進行私有鏡像制作…

Win32動態庫 Lib文件哪去了

最近使用SQLite&#xff0c;用源文件.c和.h編譯SQLite的動態庫&#xff0c;編譯后發現沒有Lib文件。 原來&#xff1a;SQLite的.c文件沒有引用.h文件&#xff0c;添加引用&#xff0c;編譯&#xff0c;Lib文件有了。轉載于:https://www.cnblogs.com/yunuoyuhan/p/3204457.html

console java_Java Console format()方法與示例

console java控制臺類format()方法 (Console Class format() method) format() method is available in java.io package. format()方法在java.io包中可用。 format() method is used to write the formatted string to this Console with the help of the given string format…

Anaconda自帶Python編譯器Jupyter Notebook顯示代碼行數

ESC&#xff1a;進入命令行模式&#xff1b;按下H即可顯示各種快捷鍵信息 Enter&#xff1a;進入編輯模式 方法一&#xff1a;命令方法 一、點擊代碼段&#xff0c;按ESC&#xff0c;使代碼段顯示藍色&#xff0c;進入命令行模式 二、按下ShiftL&#xff0c;顯示代碼行數 方法…

ajax 服務器響應,ajax-服務器響應

如果需要獲得了來自服務器的響應&#xff0c;則使用XMLHttpRequest 對象的 responseText 或 responseXML 屬性responseText&#xff1a;獲得字符串形式的響應數據&#xff0c;當readyState屬性值變為4時&#xff0c;responseText屬性才可用&#xff0c;表明Ajax請求已經結束例&…

(轉)MOMO的Unity3D研究院之深入理解Unity腳本的執行順序(六十二)

http://www.xuanyusong.com/archives/2378 Unity是不支持多線程的&#xff0c;也就是說我們必須要在主線程中操作它&#xff0c;可是Unity可以同時創建很多腳本&#xff0c;并且可以分別綁定在不同的游戲對象身上&#xff0c;他們各自都在執行自己的生命周期感覺像是多線程&…

SQL/MongoDB 連接并發測試

最近一直在搞mongodb 文件服務器大量文件并發上傳測試&#xff0c;在官方文檔發現mongo是線程安全的&#xff0c;支持單一連接下的并發操作。印象ADO.NET 似乎不支持單一連接并發。于是&#xff0c;測試一下來證實這個疑慮。&#xff08;前兩篇小記一直糾結mongodb吃內存導致并…

【C、C++基礎】什么時候用 “.” 什么時候用“->”(3個實例搞懂)

從堆棧的角度來說&#xff1a; 從堆棧的角度來說&#xff1a; 對象放在堆上&#xff0c;就要用指針&#xff0c;也就是對象指針->函數&#xff1b; 放在棧上,就對象.函數 那么如何判斷對象放在堆上還是棧上&#xff1f; 從我的另一篇筆記【C grammar】C簡化內存模型可知&am…