随机数列求重、杨辉三角

本文探讨了如何生成一个包含1到20的随机数列,并找出其中的重复数字及其出现次数。作者避免了使用双层循环导致的重复计算问题,通过将已出现的数字存储在列表中来优化算法。此外,文章还详细介绍了解决杨辉三角问题的过程,包括初始尝试的错误、发现的规律以及最终实现的简洁解决方案,强调了在循环条件和if判断语句中的思考与调整,成功输出了用户指定行数的杨辉三角形。

第一个是打出一个[1,20]范围的随机10个数字的数列,并且给出重复的数字和重复了多少次。刚看到题,我就不假思索的先写了两个嵌套for循环出来,接着问题就来了,因为重复的数字在后面再次出现时又会遍历一遍,再次打印出来。
所以我索性这样干,每当有数字重复时,把这个数字放进一个列表,在下次外层循环开始执行时判断这次判断的这个数字是否在那个列表里,如果在,直接Continue跳出本次循环,无则继续执行。在我目前的水平来看,我个人还是对我这段代码比较满意的。

随机数列求重

	#!/usr/bin/python3
	import random
	l1=[]
	for i in range(10):
	    l1.append(random.randint(1,20))
	print(l1)
	l2=[]
	for j in range(len(l1)):
	    count=0
	    if l1[j] in l2:               #去重
	        continue                  #去重   
	    for k in range(len(l1)):
	        if j==k : 
	            continue
	        if l1[j]==l1[k]:
	            count=count+1
	            l2.append(l1[j])      #把统计过的放进一个列表里
	    if count!=0:
	        print("重复的是",l1[j],",重复",count,"次。")
	if l2 == [] :
	    print("没有重复的。")

第二个则是杨辉三角的问题,一开始我并没有搞清楚规律,想着先把前两行打印出来,第三行开始再在循环里打印,但是这样子的时候,代码就会很复杂,并且有很多bug。这时我的注意力就放在了杨辉三角上,而不是去改代码bug。
在这里插入图片描述
反复钻研后我发现我之前的想法太愚蠢了,直接在循环里加入一个if判断语句就可以解决,并且这个if语句也是求下面行数时必不可少的。再后来就是循环里的循环条件又让我思考了好一会儿,因为我代码写的是用户输入多少行的,而列表里的索引又是从0开始算的,所以在两个循环里条件不能相同,虽然杨辉三角行数和当前行有多少个数字是相等的,但是还是必须修改循环条件,从1开始循环,最终程序得到完善,执行出了期望的结果。

杨辉三角

	#!/usr/bin/python3
	l1=[[]]
	n=int(input("请输入行数:"))
	
	for i in range(1,n+1):
	    l1.append([])
	    for j in range(i):
	        if j == 0 or j == i-1: 
	            l1[i].append( 1 )
	        else :
	            l1[i].append( l1[i-1][j-1] + l1[i-1][j] )
	
	    print( l1[-1] )
内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络中常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成中小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。
多旋翼无人机组合导航系统-多源信息融合算法(Matlab代码实现)内容概要:本文围绕多旋翼无人机组合导航系统,点介绍了基于多源信息融合算法的设计与实现,利用Matlab进行代码开发。文中采用扩展卡尔曼滤波(EKF)作为核心融合算法,整合GPS、IMU(惯性测量单元)、里程计和电子罗盘等多种传感器数据,提升无人机在复杂环境下的定位精度与稳定性。特别是在GPS信号弱或丢失的情况下,通过IMU惯导数据辅助导航,实现连续可靠的位姿估计。同时,文档展示了完整的算法流程与Matlab仿真实现,涵盖传感器数据预处理、坐标系转换、滤波融合及结果可视化等关键环节,体现了较强的工程实践价。; 适合人群:具备一定Matlab编程基础和信号处理知识,从事无人机导航、智能控制、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多旋翼无人机的高精度组合导航系统设计;②用于教学与科研中理解多传感器融合原理与EKF算法实现;③支持复杂环境下无人机自主飞行与定位系统的开发与优化。; 阅读建议:建议结合Matlab代码与理论推导同步学习,点关注EKF的状态预测与更新过程、多传感器数据的时间同步与坐标变换处理,并可通过修改噪声参数或引入更多传感器类型进行扩展实验。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值