二、规则组织数学模型的建立

一、规则组织数学模型的建立

规则组织满足两个不变: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.mzph.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…