1.数据库复习
关系模式
一个关系模式应当是五元组 R(U,D,DOM,F)
R是关系名,U是一组属性,D是属性的域(定义域),DOM是属性到域的映射(值域),F为U上的一组数据依赖。
函数依赖的一些概念
非平凡的函数依赖:(Sno,Cno) --> Grade
平凡的函数依赖: (Sno,Cno) --> Sno , (Sno,Cno)-->Cno
完全函数依赖: (Sno,Cno) -F-> Grade
部分函数依赖: (Sno,Cno) -P-> Sno , (Sno,Cno) -P-> Cno
传递函数依赖: Sno --> Sdept,Sdept --> Mname , Sno -传递-> Mname
码
R(U,F),K为U中的属性或属性组合,若K -F- >U ,则K为R的候选码
K决定U的所有属性
若候选码多于一个,则选定一个做为主码,包含在任何一个候选码中的属性称为主属性,不包含在任何候选码的属性称为非主属性。
范式
6个级别 1NF 2NF 3NF BCNF 4NF 5NF
1NF:所有属性均不可再分(只要是关系都满足)
2NF:在1NF的基础上,每一个非主属性完全函数依赖于任何一个候选码
每一个非主属性不能被K的子集决定
3NF:在1NF的基础上,每一个非主属性不传递依赖与码,也不部份依赖于码
BCNF:修正的3NF。关系模式R(U,F)中,每一个决定因素都包含码。
满足BCNF的关系模式有:
所有非主属性对每一个码都是完全依赖。
所有非主属性对每一个不包含它的码也是完全函数依赖。
没有任何属性完全函数依赖于非码的任何一组属性。
若R∈3NF,且R只有一个候选码,则R一定属于BCNF
若F中含有传递依赖,用投影分解,分解关系模式
求候选码:
1.先分类
L类(只出现在决定因素(箭头左边)的属性)
R类(只出现在箭头右边的属性)
N类(没有出现在箭头两边的属性)
LR类(箭头两边都出现的属性)
2.求(LN)F+ 若≠U,则:
3.求(L,N,LR)F+
将LR的属性一个一个加
比如 L=A,N=E,LR=B,C,D
1.求(A,E,B)F+ 若≠U:2.求(A,E,C)F+ 若≠U 求:3.求(A,E,D)F+
若1=U但2、3≠U,求一下(A,E,C,D)F+
若1、2、3均≠U LR中两两组合加
1.求(A,E,BC)F+ 若≠U 2.求(A,E,BD)F+ 若≠U 3.求(A,E,CD)F+ 若≠U
三三组合......
2.四级听力技巧:
在之前的练习中,总是担心考试没有多余时间浏览听力题目。今天了解到四级考试前30分钟的写作可以匀出来时间浏览,以后要练习画关键词的能力。
听力纠错应该是重新看一遍题目,重新听一遍,再看带字幕的听一遍,再不看带字幕的听一遍
翻译大致还行,一些动词有时想不起来,单词还得再背。
3.算法题。
16号继续看b站讲解的算法知识视频,有关浮点数的相关内容
浮点数的比较不能直接用==
用 Math.abs(0.1+0.2-0.3)< 1E-10
解题时把浮点数转化为整数,比如扩大十倍,比如浮点数在分母通分一下
IEE7545个特殊值:
int a = 3.0/0 = Infinity 不可表示的,可以理解为无穷大
a+1 = Infinity
a+a = Infinity
1/Infinity = 0.0
a*-1 = -Inifinity
1/(-a) = -0.0
a-a = NaN not a number 不是一个数值,和任何数值运算结果都是NaN
a/a = NaN
任意精度的小数
Java.math.BigDecimal 精确的数
Java.math.MathContext 数学上下文,精确到几位,多少位有效数字
BigDecimal a = BigDecimal.valueOf(1).devide(BigDecimal.valueOf(6),
new MathContext(100));
保留100位有效数字
四舍六入五成双
5的时候入还是舍?看最终能否是偶数来选择
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
给定一个正整数n,求能使n! / 6x是整数的x的最大值。
输入描述:
共一行,给定一个正整数n(1<= n <= 1e6)。
输出描述:
x的最大值。
示例1
输入
复制3
3
输出
复制1
1
我写的:
import java.util.Scanner;
import static java.lang.Math.pow;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
double x = 0;
double r =f(n)/pow(6,x);
int m = (int) r;
if((r*10)-(m*10)==0){
System.out.println(x);
}
}
static public int f(int n){
if(n==0) return 1;
return n*f(n-1);
}
}
目前还没找到答案/(ㄒoㄒ)/~~
4.下周任务:
1.把周日没做完的四级卷子做完,并订正,26号再做一套
2.科技文献检索作业要开始写了,26号之前写完
3.继续看算法视频,看随想录,20-24号每天一道算法题,继续打卡
4.计网上课要好好听,好好复习,考试很难
5.开始看数据结构的视频,学会线性表
6.每三天背一篇作文,26号提交默写的两篇作文的照片