1 TCP和UDP的特点
TCP:面向连接 TCP面向连接通信,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换 ;“面向连接”就是在正式通信前必须要与对方建立起连接。
TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。
TCP支持的应用协议:Telnet(远程登录)、FTP(文件传输协议)、SMTP(简单邮件传输协议)。
UDP:面向非连接的 UDP面向非可靠连接,会丢包,没有校验,速度快,无须握手过程;"面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。
UDP支持的应用协议:NFS(网络文件系统)、SNMP(简单网络管理系统)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。
总结:
TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。 UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。
2 25匹马 5个跑道,每次只能跑5匹,至少需要多少次才能选出最快的前3匹?
将马分成A、B、C、D、E五组。
第1-5次比赛:各组分别进行比赛,决出各组名次,取每组前三名 A1、A2、A3
B1、B2、B3
C1、C2、C3
D1、D2、D3
E1、 E2、E3
第6次比赛:A1、B1、C1、D1、E1,即每组的第一名进行比赛; 假设得到的排名结果是A1、B1、C1、D1、E1;其中A1是跑的最快的,那么A组A2、A3,B组的B1、B2以及C组的C1都是有机会进入前三的,C2没有希望冲进前3了,因为C1是比赛的名次已经是第3名了,此外D组E组都没有希望进入前3。现在已经知道A1肯定是第1名,剩下A2、A3、B1、B2、C1是有希望冲进前三的,那么让他们再进行一场比赛即可;
第7次比赛:A2、A3、B1、B2、C1比赛求出第2,第3即可。 所以公共需要7厂比赛,就可以选出最快的前3匹马;
3 用rand5实现rand7
rand5(5):等概率生成整数[1, 2, 3, 4, 5]
rand5(7): 等概率生成整数[1, 2, 3, 4, 5, 6, 7]
思路:
用(rand5(5) - 1)构造等概率整数数组:[0, 1, 2 , 3, 4], 用(rand5(5) - 1)*5构造整数数组:[0, 5, 10, 15, 20], 上面的两个整数组可以构造等概率的新数组:[0, 1, 2, 3, 4, 5, 6, 7, … , 24]; (如果第2个数组选择2倍或者3倍,4倍则无法构造新的等概率数组)
选择新数组[0, 1, 2, 3 … , 20]21个元组即可构造等概率的数组[1, 2, 3, 4, 5, 6, 7] 参考代码:
七月在线品牌月
福利:每天1 门 AI 爆款课 1 分秒杀!
时间:7 月 1 日-7 月 31 日
时长:每个课秒杀时长为 24h !
本周 1 分钱秒杀课程明细见下图,扫码进入活动主会场 ↓↓
|