首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python-VBA编程500例-009(入门级)

  • 25-03-03 04:43
  • 4117
  • 11905
blog.csdn.net

目录

1、不重复的两个数:

1-1、Python:

1-2、VBA:

2、相关文章:

Python算法之旅:http://iyenn.com/rec/1699032.html?spm=1001.2014.3001.5502 

个人主页:非风V非雨-CSDN博客

欢迎志同道合者一起交流学习,我的QQ:94509325/微信

        不重复的两个数(Two Non Repeating Numbers)这类算法在多个实际应用场景中都有着广泛的应用。常见应用场景主要有:

1、去重和排序:在处理大量数据时,经常需要去除重复项并对数据进行排序。例如,在数据库查询、日志文件分析或电子商务网站的订单处理中,可能需要对用户ID、产品ID或其他唯一标识符进行去重操作。
2、唯一性验证:在注册新用户、创建新订单或添加新产品时,需要确保提供的标识符(如用户名、订单号或产品代码)是唯一的。这类算法可以快速检查并防止重复项的创建。
3、哈希表和集合:在计算机科学中,哈希表和集合是两种常用的数据结构,它们依赖于不重复元素的算法来确保数据的唯一性。哈希表用于快速查找和存储键值对,而集合则用于存储不重复的元素集合。
4、密码学和安全:在密码学和安全领域,不重复的两个数算法也有着重要的应用。例如,在生成随机数或加密密钥时,需要确保生成的数是唯一的,以防止潜在的安全漏洞。
5、推荐系统:在构建推荐系统时,可能需要对用户的偏好或行为进行分析,并基于这些不重复的数据来生成个性化的推荐。
6、生物信息学和基因组学:在生物信息学和基因组学领域,研究人员经常需要处理大量的基因序列或生物标记物数据。通过利用不重复的两个数算法,可以高效地识别和分析这些独特的数据点。
7、网络流量分析:在网络安全和流量分析中,可能需要跟踪和识别唯一的IP地址、端口号或其他网络标识符。这类算法可以帮助快速识别出异常或恶意流量。

        总之,不重复的两个数这类算法在多个领域都有着广泛的应用,它们在确保数据的唯一性、提高处理效率以及增强安全性方面发挥着重要作用。

1、不重复的两个数:
1-1、Python:
  1. # 1.问题描述:
  2. # 给定一个数组list1[],其中除了两个数外,其他均出现≥2次,请找到并输出不重复的两个数
  3. # 2.问题示例:
  4. # 给定输入数组list1=[24, 3, 5, 6, 8, 10, 10, 11, 6, 5, 3, 24],除了8和11外,其余数字均出现了两次,因此返回[8,11]
  5. # 3.代码实现:
  6. class Solution:
  7. # 参数arr: 输入的待查数组
  8. # 返回值: 两个值的列表,内容无重复
  9. def two_Non_Repeating_Numbers(self, list1):
  10. answer = [0, 0] # 初始化数组answer
  11. # 对数组进行异或操作,得到所有重复数字的异或结果
  12. for i in list1:
  13. answer[0] = answer[0] ^ i # ^按位异或运算符:两个数二进位相异时,结果为1;反之,结果为0.
  14. # 找到第一个为1的位
  15. c = 1
  16. while c & answer[0] != c: # &按位与运算符:两个数二进位相同且为1时,结果为1;反之,结果为0.
  17. c = c << 1 # <<左移动运算符:运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位丢弃,低位补0.
  18. # 根据该位来区分两个非重复数字,并更新answer数组
  19. for i in list1:
  20. if i & c == c:
  21. answer[1] = answer[1] ^ i
  22. # 更新answer数组的第一个元素
  23. answer[0] = answer[0] ^ answer[1]
  24. # 返回结果
  25. return answer
  26. # 主函数
  27. if __name__ == '__main__':
  28. # 定义输入的数组arr
  29. arr = [24, 3, 5, 6, 8, 10, 10, 11, 6, 5, 3, 24]
  30. # 调用函数并打印结果
  31. solution = Solution()
  32. print("数组为:", arr)
  33. print("两个没有重复的数字是:", solution.two_Non_Repeating_Numbers(arr))
  34. # 4.运行结果:
  35. # 数组为: [24, 3, 5, 6, 8, 10, 10, 11, 6, 5, 3, 24]
  36. # 两个没有重复的数字是: [8, 11]
1-2、VBA:
  1. Rem 自定义函数,功能:不重复的两个数
  2. Function TwoNonRepeatingNumbers(arr() As Variant) As Variant
  3. Dim answer(1) As Variant
  4. Dim i As Long
  5. Dim c As Long
  6. '初始化answer数组
  7. answer(0) = 0
  8. answer(1) = 0
  9. '对数组进行异或操作,得到所有重复数字的异或结果
  10. For i = LBound(arr) To UBound(arr)
  11. answer(0) = answer(0) Xor arr(i)
  12. Next i
  13. '找到第一个为1的位
  14. c = 1
  15. While (c And answer(0)) <> c
  16. c = c * 2
  17. Wend
  18. '根据该位来区分两个非重复数字,并更新answer数组
  19. For i = LBound(arr) To UBound(arr)
  20. If (arr(i) And c) = c Then
  21. answer(1) = answer(1) Xor arr(i)
  22. End If
  23. Next i
  24. '更新answer数组的第一个元素
  25. answer(0) = answer(0) Xor answer(1)
  26. '返回结果
  27. TwoNonRepeatingNumbers = answer
  28. End Function
  29. Rem 执行过程,功能:调用自定义函数TwoNonRepeatingNumbers,在立即窗口输出结果.
  30. Sub TestRun()
  31. Dim arr() As Variant
  32. Dim solution As Variant
  33. '定义输入的数组
  34. arr = Array(24, 3, 5, 6, 8, 10, 10, 11, 6, 5, 3, 24)
  35. '调用函数并打印结果
  36. solution = TwoNonRepeatingNumbers(arr)
  37. Debug.Print "数组为:" & Join(arr, ", ")
  38. Debug.Print "两个没有重复的数字是:" & solution(0) & ", " & solution(1)
  39. End Sub
  40. '数组为:24, 3, 5, 6, 8, 10, 10, 11, 6, 5, 3, 24
  41. '两个没有重复的数字是:8, 11

注意:1-2中的代码需粘贴到你的VBA编辑器中,按F5执行TestRun程序,在立即窗口中输出结果。

2、相关文章:

2-1、Python-VBA编程500例-007(入门级)

2-2、Python-VBA编程500例-008(入门级)

2-3、Python-VBA编程500例-010(入门级) 

2-4、Python-VBA编程500例-011(入门级) 

Python算法之旅:​​​​​​​http://iyenn.com/rec/1699032.html?spm=1001.2014.3001.5502 
个人主页:非风V非雨-CSDN博客
欢迎志同道合者一起交流学习,我的QQ:94509325/微信: 

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览60120 人正在系统学习中
遨游码海,我心飞扬
微信名片
注:本文转载自blog.csdn.net的神奇夜光杯的文章"https://myelsa1024.blog.csdn.net/article/details/136786669"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top