cmd安装pip:

1
python -m ensurepip --default-pip

vscode控制台安装库:

1
pip install 库名

综测83.17,专业排39/169

希望评上三等奖学金。

开学一周,双周课挺少的。

学校发了月饼,中秋节快到了。

回去吗?

感觉空荡荡的。

2024.3

1.矩阵是线性结构,数组是长度固定的线性表,对线性表可以增删查改,线性表里的各元素的数据类型相同
2.在快速排序法里,每经过依次数据交换或移动后能消除多个逆序
3.线性表的长度为n。在最坏的情况下,比较次数为n-1的算法为寻找最大项
4.二叉树
5.软件是逻辑实体,具有抽象性
6.软件系统总体构图的作用是描述软件系统结构的图形工具
7.下面不属于结构化程序设计风格的是程序的执行效率
8.将数据库的结构划分多个层次,是为了提高数据库的物理独立性和逻辑独立性
9.定义学生选修课程关系模式SC(S#,Sn,C#,Cn,G)(其属性分别为学号、姓名、课程号、课程名、成绩)该关系的范式最高达到1NF
10.c语言程序里不正确的是整数和实数都能被准确无误地表示出来(实数不能,整数可以)
11.一个c语言程序由函数组成
12.关键字
13.c语言常量表示可以在数字后加上e或E表示10的幂,e或E后面必须为整数且为整数
14.用户标识符:第一个字符为字母或下划线,标识符区分大小写,后面可以为字母,数字,下划线
15.c语言中,整数可以以十进制,八进制,十六进制的形式输出
16.long型数值的格式符为%ld
17.格式符:十进制 %d 八进制 %o 十六进制 %x
18.赋值语句:变量=表达式
19.带参宏指令:#define sub(a,b) a-b
20.所有的字符常量都可以作为整型量来处理
21.func((exp1,exp2),(exp3,exp4,exp5));调用了2个实参,里面有五个形参
22.int (*ptr)()含义:ptr是指向函数的指针,该函数返回一个int型数据。
23.字符数组初始化:单引号括起来的字符常量值存放一个字符,用字符数组存放字符串
24.若str1小于str2,则返回负整数,即小于0的数。若str1和str2相等,则返回0。若str1大于str2,则返回正整数,即大于0的数。
25.联合体不能在定义的时候初始化,内存长度等于最长的,其地址和各成员地址相同
26.文件由数据流形式组成,可按数据的形式分为二进制文件和文本文件

2023.9

1.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
2.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
3.软件测试的目的是发现程序中的错误
4.软件危机表现 软件开发生产率低,软件质量难以控制,软件成本不断提高
5.软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的过程
6.层次型、网状型和关系型数据库划分原则是数据之间的联系方式
7.数据库设计中反映用户对数据规定的模式是外模式
8.在C语言中,程序的模块化是运用函数实现的
9.简朴程序设计的环节和顺序的说法:一方面拟定数据结构,然后拟定算法,再编码,并上机调试,最后整理文档

无聊写的,懒得动笔。

我了个o((⊙﹏⊙))o. 老师连PPT都没发

常见的离散数学符号:
联结词: ¬ ∧ ∨ → ↔
推出:⇒
等值:⇔
△ × ≁
量词:∃ ∀
数学:
≠ ≥ ≤
集合关系
∪ ∩ ∈ ⊆ ⊂ ⊇ ⊃ Ø

第1章 命题逻辑的基本概念

1.1

命题是非真即假的陈述句,简单命题是最小的基本单位,其构成复合命题,悖论不是命题。

命题符号化,联结词也符号化。
¬:否定联结词

∧:合取联结词.规定p∧q为真当且仅当p与q同时为真

∨:析取联结词.规定p∨q为假当且仅当p与q同时为假
(或有两种:排斥或 相容或)

→:蕴涵联结词.p→q为假当且仅当p为真q为假。p为前件,q为后件。
注意点:
1.p→q:表示q是p的必要条件。
2.当p为假时,p→q必然为真
3.p→q为真仅表示p与q的取值关系为真,与其内在联系无关。

↔:等价联结词.规定p↔q为真当且仅当p与q同时为真或同时为假。

p q ¬p p∧q p∨q p→q p↔q
0 0 1 0 0 1 1
0 1 1 0 1 1 0
1 0 0 0 1 0 0
1 1 0 1 1 1 1

ex:
p:北京比天津的人口多
q: 2+2=4
r:乌鸦是白色的
求下列符合命题的真值
先算简单命题真值:p:1 q:1 r:0
(1) ((¬p∧q)∨(p∧¬q))→r 左0右0 A:1
(2) (q∨r)→(p→¬r) 左1右1 A:1
(3) (¬p∨r)↔(p∧¬r) 左0右1 A:0

1.2 命题公式及其赋值

命题常项真值确定,命题变项是取值1或0的变元。
将命题变项用联结词和圆括号按照一定逻辑顺序联结起来的符号串称作合式公式
(1)单个命题变项是合式公式,并称为原子命题公式
(2)若A为合式公式,则¬A也为合式公式
(3)若A,B是合式公式,则 A∧B A∨B A→B A↔B 是合式公式
(4)有限次地应用(1)-(3)形成的符号串是合式公式

设A为任一命题公式
(1)若A在各种赋值下取值均为真,则称A为重言式或永真式
(2)若A在各种赋值下取值均为假,则称A为矛盾式或永假式
(3)若A不是矛盾式,则称A为可满式


好久不更新了,本来也随便写写。
并集:A与B的并集,记作:A∪B,它同时包含集合A或者集合B里面的元素:A∪B={x|xEA | xEB}
交集:A与B的交集,记作:A∩B,他包含A与B里面的公共元素:A∩B = {x| xEA & xEB}
如果两个集合不相交,他们的交集是空集。
A∪B = A + B - A∩B
补集:有两种:绝对补与相对补。
相对补:也叫做差集,记作A - B(意思是A集合里面减去包含在B里面的A元素),即:A-B = A - A∩B
A - B = {x| xEA & x !E B}
绝对补:全集是E,有一个集合是A,那么A的补集是:A。A = E-A
所以有性质:(A) = A E = 空集 ~空集 = E A∩A = 空集 A∪~A = E
~(A ∩ B) = ~A ∪ ~B ~(A ∪ B)= ~A ∩ ~B
对称差:A与B对称差包括属于A的部分加上属于B的部分减去属于A与B的公共部分。
我们记作A@B
A@B = (A-B) ∪ (B-A) == A + B - A∩B
所以我们可以得到以下公式:A@B=B@A A@K=A A@A=K A@B=(A∩B)∪(B∩A) (A@B)@C=A@(B@C)

一、 真子集

真子集 :

描述 : A , B A , BA,B 两个集合 , 如果 A AA 集合 是 B BB 集合的子集 , 并且 A ≠ B A \not= BA


=B , 则称 A AA 是 B BB 的真子集 , B BB 真包含 A AA ;

记作 : A ⊂ B A \subset BA⊂B

符号化表示 : A ⊂ B A \subset BA⊂B ⇔ \Leftrightarrow⇔ A ⊆ B ∧ A ≠ B A \subseteq B \land A \not= BA⊆B∧A


=B

非真子集 :

描述 : A AA 集合 不是 B BB 集合的真子集 ;

记作 : A ⊄ B A \not\subset BA


⊂B

符号化表示 : A ⊄ B A \not\subset BA


⊂B ⇔ \Leftrightarrow⇔ ∃ x ( x ∈ A ∧ x ∉ B ) ∧ A ≠ B \exist x ( x \in A \land x \not\in B ) \land A \not= B∃x(x∈A∧x


∈B)∧A


=B

( 存在元素 x xx 是集合 A AA 的元素 , 不是集合 B BB 的元素 , 并且 A , B A , BA,B 不相等 , 则 A AA 不是 B BB 的真子集 )

真包含关系 性质 :

反自反性 : A ⊄ A A \not\subset AA


⊂A

反对称性 : 如果 A ⊂ B A \subset BA⊂B , 那么 B ⊄ A B \not\subset AB


⊂A

传递性 : 如果 A ⊂ B A \subset BA⊂B , 并且 B ⊂ C B \subset CB⊂C , 那么 A ⊂ C A \subset CA⊂C

二、 空集

空集描述 : 没有任何元素的集合 , 称为空集合 , 简称为 空集 ;

记作 : ∅ \varnothing∅

空集示例 : A = { x ∣ x 2 + 1 = 0 ∧ x ∈ R } A = { x | x^2 + 1 = 0 \land x \in R }A={x∣x
2
+1=0∧x∈R}

R RR 是实数集合 , 上述 x xx 明显无解 , 集合也为空集 ;

空集定理 : 空集是一切集合的子集 ;

空集推论 : 空集是唯一的 ;

三、 全集

全集 : 限定所讨论的集合 , 都是某个集合的子集 , 则称该集合为全集 , 记作 E EE ;

全集不唯一 : 全集只是相对于讨论问题的范畴 , 不唯一 , 不能讨论范畴之外的情况 ;

全集示例 : 讨论 [0, 1] 区间上的实数性质 , 取全集为 [0, 1] 上的所有实数 ;

( 讨论其它区间的数 , 也可以取其它的区间作为全集 )

四、 幂集

幂集描述 : A AA 是一个集合 , A AA 集合的全体子集组成的集合 称为 A AA 的幂集 ;

记作 : P ( A ) P(A)P(A)

符号化表述 : P ( A ) = { x ∣ x ⊆ A } P(A) = { x | x \subseteq A }P(A)={x∣x⊆A}

五、 集合元素个数

集合元素个数 :

0 00 元集 : ∅ \varnothing∅

1 11 元集 : 含有 1 11 个元素的集合 , 又称为 单元集 ;

2 22 元集 : 含有 2 22 个元素的集合 ;

n nn 元集 : 含有 n nn 个元素的集合 ; ( n ≥ 1 n \geq 1n≥1 )

有穷集 : ∣ A ∣ |A|∣A∣ 表示集合 A AA 中的元素个数 , 如果 A AA 集合中的元素个数是 有限数 时 , 那么称该 A AA 集合为有穷集 , 或 有限集 ;

幂集个数定理 : 集合 A AA 中的 元素个数 ∣ A ∣ = n |A| = n∣A∣=n , 则 A AA 的 幂集个数 ∣ P ( A ) ∣ = 2 n |P(A)| = 2^n∣P(A)∣=2 n

六、 求幂集步骤

求幂集步骤 : 求 集合 A AA 的幂集 , 需要按照顺序求 A AA 集合中 由低到高元的所有子集 , 再将这些子集组成集合 ;

低到高元的所有子集 : 0 00 元集 , 1 11 元集 , 2 22 元集 , ⋯ \cdots⋯ , n nn 元集 ;

集合 A = { a , b , c } A = { a, b , c }A={a,b,c}

0 00 元集 : ∅ \varnothing∅

1 11 元集 : { a } { a }{a} , { b } { b }{b} , { c } { c }{c}

2 22 元集 : { a , b } { a, b }{a,b} , { a , c } { a, c }{a,c} , { b , c } { b, c }{b,c}

3 33 元集 : { a , b , c } { a, b, c }{a,b,c}

集合 A AA 的幂集是 :

P ( A ) = { ∅ , { a } , { b } , { c } , { a , b } , { a , c } , { b , c } , { a , b , c } } P(A) = { \varnothing , { a } , { b } , { c } , { a, b } , { a, c } , { b, c } , { a, b, c } }P(A)={∅,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}}

开学了,大二又要学了。

新学期好像没啥规划。

学就是了。

我喜欢夏天的云,因为它看上去是那么的浓烈,触手可及。

现在暑假已经接近尾声了,夏天的云似乎也已经消散。

我知道,夏天正在消逝。

就好比手中的冰淇淋,逐渐融化。

阅读全文 »

三天没写blog了,本来放暑假也比较闲,也不想学习。最近在玩我的世界,搭建筑。记录一下。
天空,即为极限!

minecraft

写代码报错改bug真的痛苦╥﹏╥
  1. 数据结构书p28页:编写程序实现顺序表的逆置

功能函数如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void Vert(SeqList *L)         
{
    int temp;int i;
    if(L->n%2==0)
    {
        for(i=0;i<L->n/2;i++)
        {
            temp=L->element[i];
            L->element[i]=L->element[L->n-i];
            L->element[L->n-i]=temp;
        }
    }
    else
    {
        for(i=0;i<(L->n-1)/2;i++)
        {
            temp=L->element[i];
            L->element[i]=L->element[L->n-i];
            L->element[L->n-i]=temp;
        }
    }
}

想半天页没看出来哪里错了,一运行程序就开始死循环。然后问了文心一言。当顺序表元素个数为偶数时,程序运行没问题。当为奇数时,中间的元素 (L->n)/2 作为中心点,在逆置后保留原位。但只循环到 (L->n-1)/2 ,意味着最后一个元素没有交换。这是他的解释,后来我发现其实是我索引出错了,数组索引是从0开始的。中间的数无论是否交换都不变。

以下是一个统一的逆置标准:

1
2
3
4
5
6
7
8
9
10
11
void Vert(SeqList *L) 
{
int temp;
int i;
for (i = 0; i < L->n / 2; i++)
{
temp = L->element[i];
L->element[i] = L->element[L->n - 1 - i];
L->element[L->n - 1 - i] = temp;
}
}

时间复杂度

数组结构:常数复杂度:+ - * / 位运算(与数据量无关)
链表结构:遍历->O(n)

选择排序

aN^2+bN+c -> O(N^2): 只取最高阶项,且忽略系数 (设上限)

1
2
3
4
5
6
7
8
9
10
11
selectionsort(int[] arr){
if(arr == NULL || arr.length<2 ) {return ;}
for(int i=0; i < arr.length - 1;i++){
int minindex =i;
for(j=i+1;j < arr.length; j++)
{
minindex = arr[j] < arr[minindex] ? j : minindex ;
}
swap(arr,i,minindex);
}
}
阅读全文 »