首页 最新 热门 推荐

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

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

  • 25-03-03 04:43
  • 3207
  • 10150
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/微信

        数组剔除元素后的乘积(The Product Resulting From An Array With Elements Excluded)在多个领域具有实际应用价值。常见的应用场景有:

1、金融数据分析:在金融领域,数组通常用来存储股票价格、交易量或其他相关金融指标。当分析人员需要剔除某个异常数据点或某个时间段的数据以进行趋势分析或计算回报率时,他们可以利用数组剔除元素后的乘积。例如,如果一个投资者想要计算剔除某只股票后投资组合的整体回报,可以使用这种方法来得出更准确的结果。

2、统计分析:在统计学中,研究人员经常需要对数据进行清洗和处理,以消除噪声或异常值。通过剔除数组中的特定元素,并计算剩余元素的乘积,研究人员可以更准确地评估数据的分布情况或计算某些统计指标,如平均值或中位数。

3、信号与图像处理:在信号处理领域,数组常用于存储时间序列数据,如音频信号或传感器数据。通过剔除某些特定时间点的数据(例如噪声或干扰信号),并计算剩余数据的乘积,可以帮助提取信号的特征或识别特定模式。这在语音识别、图像处理或机器学习等应用中特别有用。

4、生物信息学:在生物信息学中,数组经常用于存储基因表达数据或蛋白质相互作用数据。剔除某些异常或无关数据点,并计算剩余数据的乘积,有助于识别生物标记物、分析基因表达模式或研究蛋白质网络的复杂性。

5、计算机科学:在计算机科学领域,数组剔除元素后的乘积在算法设计和优化中可能具有应用价值。例如,在排序算法或搜索算法中,通过剔除不符合条件的元素并计算剩余元素的乘积,可以加速计算过程并提高算法效率。

        总之,数组剔除元素后的乘积在多个领域具有广泛的应用价值,可以帮助研究人员、分析师和开发人员更准确地处理和分析数据,从而得出更有意义的结论和结果。

1、数组剔除元素后的乘积:
1-1、Python:
  1. # 1.问题描述:
  2. # 给定一个整数数组arr1,定义arr2[i] = arr1[0] x ... x arr1[i-1] x arr1[i+1] x ... x arr1[n-1],
  3. # 即arr2[i]为arr1中剔除arr1[i]元素之后所有剩余元素的乘积,最后输出数组arr2.
  4. # 2.问题示例:
  5. # 输入arr1 = [1, 6, 8],则输出arr2 = [48, 8 ,6].即arr2[0] = arr1[1] x arr1[2],arr2[1] = arr1[0] x arr1[2],
  6. # arr2[2] = arr1[0] x arr1[1].
  7. # 3.代码实现:
  8. class Solution:
  9. # 参数arr1: 输入的整数数组
  10. # 返回值arr2: 输出整数数组,其中arr2[i]是arr1中除arr1[i]之外所有元素的乘积
  11. def productExcludeItself(self, arr1):
  12. # 获取arr1的长度,并初始化一个空列表arr2用于存储结果
  13. length, arr2 = len(arr1), []
  14. # 初始化f列表,长度为length+1,所有元素初始值设为1
  15. # f列表用于存储从arr1[0]到arr1[i-1]的乘积,其中f[i]表示不包括arr1[i]的乘积
  16. f = [1] * (length + 1)
  17. # 从右向左遍历arr1,计算从当前元素到数组末尾的乘积
  18. # 由于数组索引从0开始,所以这里从length-1遍历到1
  19. for i in range(length - 1, 0, -1):
  20. # 当前位置的乘积等于下一个位置的乘积乘以当前元素的值
  21. f[i] = f[i + 1] * arr1[i]
  22. # 初始化tmp为1,用于计算当前位置左边的乘积
  23. tmp = 1
  24. # 从左向右遍历arr1,计算每个位置除自身外其他元素的乘积
  25. for i in range(length):
  26. # 当前位置的乘积等于左边乘积(tmp)乘以右边乘积(f[i+1])
  27. arr2.append(tmp * f[i + 1])
  28. # 更新tmp为当前位置的乘积,以便下一次计算使用
  29. tmp *= arr1[i]
  30. # 返回最终的结果数组arr2
  31. return arr2
  32. # 主函数
  33. if __name__ == '__main__':
  34. # 定义一个整数数组arr1
  35. arr1 = [1, 6, 8]
  36. # 创建Solution类的实例
  37. solution = Solution()
  38. # 调用productExcludeItself方法,并将结果存储在arr2中
  39. arr2 = solution.productExcludeItself(arr1)
  40. # 打印输入数组和输出结果数组
  41. print("输入:", arr1)
  42. print("输出:", arr2)
  43. # 4.运行结果:
  44. # 输入: [1, 6, 8]
  45. # 输出: [48, 8, 6]
1-2、VBA:
  1. Rem 自定义函数,功能:数组剔除元素后的乘积
  2. Function ProductExcludeItself(arr1 As Variant) As Variant
  3. ' 定义变量
  4. Dim length As Integer
  5. Dim arr2() As Variant
  6. Dim f() As Variant
  7. Dim i As Integer
  8. Dim tmp As Double
  9. ' 获取数组arr1的长度
  10. length = UBound(arr1) + 1
  11. ' 初始化结果数组arr2
  12. ReDim arr2(length - 1)
  13. ' 初始化f数组,长度为length+1初始值都为0,除了最后一个元素设为1
  14. ReDim f(length)
  15. For i = 0 To length - 1
  16. f(i) = 0
  17. Next i
  18. f(length) = 1
  19. ' 从右向左遍历数组arr1,计算每个位置到数组末尾的乘积
  20. For i = length - 1 To 1 Step -1
  21. f(i) = f(i + 1) * arr1(i)
  22. Next i
  23. ' 初始化tmp为1,用于计算每个位置左边的乘积
  24. tmp = 1
  25. ' 从左向右遍历数组arr1,计算每个位置除自身外其他元素的乘积
  26. For i = 0 To length - 1
  27. arr2(i) = tmp * f(i + 1)
  28. tmp = tmp * arr1(i)
  29. Next i
  30. ' 返回结果数组arr2
  31. ProductExcludeItself = arr2
  32. End Function
  33. Rem 执行过程,功能:调用自定义函数ProductExcludeItself,在立即窗口中输出结果
  34. Sub TestRun()
  35. Dim arr1 As Variant
  36. Dim arr2 As Variant
  37. Dim i As Integer
  38. ' 定义一个整数数组
  39. arr1 = Array(1, 6, 8)
  40. ' 调用ProductExcludeItself函数,并将结果存储在arr2中
  41. arr2 = ProductExcludeItself(arr1)
  42. ' 打印输入数组和输出结果数组
  43. Debug.Print "输入:" & Join(arr1, ",")
  44. Debug.Print "输出:" & Join(arr2, ",")
  45. End Sub
  46. '结果输出:
  47. '输入:1,6,8
  48. '输出:48,8,6

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

2、相关文章:

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

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

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

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

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

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

/ 登录

评论记录:

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

分类栏目

后端 (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