当前位置: 首页 > news >正文

数组初始化方式与decimal.InvalidOperation

数组初始化方式与decimal.InvalidOperation

  • 调用函数
  • 主函数: 数组声明不同带来的报错与否
    • 1. 报错decimal.InvalidOperation的数组初始化版本
    • 2. 可行的初始化版本
  • 输出结果
    • 1. 报错时的内容
    • 2. 正常的输出计算结果
  • 原因(是否是数组与列表不同引起(?

调用函数

import scipy.misc
import numpy as np
from decimal import *x = [i for i in range(10, 110, 10)]
print(x)def countA_with_n(n):global Aif n==0:A[n]=1else:for i in range(1, n+1):if A[n-i]==0:A[n-i]=countA_with_n(n - i)#t=(-1) ** (i + 1) * 2 ** ((n - i) * i)* scipy.misc.comb(n, i)*A[n-i]A[n] = Decimal(A[n]) + Decimal((-1) ** (i + 1)) * Decimal(2 ** ((n - i) * i)) * Decimal(scipy.misc.comb(n, i)) *Decimal(A[n-i])#A[n]+=treturn A[n]

主函数: 数组声明不同带来的报错与否

1. 报错decimal.InvalidOperation的数组初始化版本

#主函数
for a in x:A = np.zeros(a+1) #前40可以计算,50时会报错‘decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]’#A = [0]*(a+1) #可行的声明方法print(str(a),str(countA_with_n(a)))

2. 可行的初始化版本

for a in x:A = [0]*(a+1) #可行的声明方法print(str(a),str(countA_with_n(a)))

输出结果

1. 报错时的内容

10 4.175098976430598e+18
20 2.3448804510510887e+72
30 2.7148544371675283e+158
C:...py:18: DeprecationWarning:     `comb` is deprecated!Importing `comb` from scipy.misc is deprecated in scipy 1.0.0. Use `scipy.special.comb` instead.A[n] = Decimal(A[n]) + Decimal((-1) ** (i + 1)) * Decimal(2 ** ((n - i) * i)) * Decimal(scipy.misc.comb(n, i)) *Decimal(A[n-i])
40 1.1241428263057385e+276
Traceback (most recent call last):File "C:xxx.py", line 65, in <module>print(str(a),str(countA_with_n(a)))File "...", line 16, in countA_with_nA[n-i]=countA_with_n(n - i)File "...", line 16, in countA_with_nA[n-i]=countA_with_n(n - i)File "...", line 16, in countA_with_nA[n-i]=countA_with_n(n - i)[Previous line repeated 2 more times]File "...", line 18, in countA_with_nA[n] = Decimal(A[n]) + Decimal((-1) ** (i + 1)) * Decimal(2 ** ((n - i) * i)) * Decimal(scipy.misc.comb(n, i)) *Decimal(A[n-i])
decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]

2. 正常的输出计算结果

DeprecationWarning:     `comb` is deprecated!Importing `comb` from scipy.misc is deprecated in scipy 1.0.0. Use `scipy.special.comb` instead.A[n] = Decimal(A[n]) + Decimal((-1) ** (i + 1)) * Decimal(2 ** ((n - i) * i)) * Decimal(scipy.misc.comb(n, i)) *Decimal(A[n-i])
10 4175098976430598143
20 2.344880451051088988152559846E+72
30 2.714854437167529438448086150E+158
40 1.124142826305737256464230893E+276
50 7.150572516568295733815015286E+424
60 4.231846207434397246471425291E+604
70 1.670508589429661015982839133E+815
80 3.469441880795996245588913622E+1056
90 3.173623968493402552666007937E+1328
100 1.113552460282985747462212849E+1631

原因(是否是数组与列表不同引起(?

参看 数组与列表的区别

在这里插入图片描述

http://www.lryc.cn/news/21800.html

相关文章:

  • 【Opencv-python】之入门安装
  • MySQL进阶(二)
  • 热爱所有热爱
  • Redis学习之数据删除与淘汰策略(七)
  • HashMap 面试专题
  • 域组策略自动更新实验报告
  • Java自定义生成二维码(兼容你所有的需求)
  • Spring事务的隔离级别
  • JVM系统优化实践(4):以支付系统为例
  • 16- TensorFlow实现线性回归和逻辑回归 (TensorFlow系列) (深度学习)
  • 无自动化测试系统设计方法论
  • 架构初探-学习笔记
  • 在成都想转行IT,选择什么专业比较好?
  • 【Spark分布式内存计算框架——Spark Streaming】4.入门案例(下)Streaming 工作原理
  • 2、算法先导---思维能力与工具
  • WordPress 函数:add_theme_support() 开启主题自定义功能(全面)
  • Winform控件开发(16)——Timer(史上最全)
  • 游戏高度可配置化:通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解
  • CountDownLatch与CyclicBarrier原理剖析
  • NLP中的对话机器人——预训练基准模型
  • C语言学习及复习笔记-【14】C文件读写
  • 模拟退火算法优化灰色
  • Pandas怎么添加数据列删除列
  • C++类和对象:构造函数和析构函数
  • 【Stata】从入门到精通.零基础小白必学的教程,一学就fei
  • 【RuoYi优化】调整JVM启动内存
  • [架构模型]MVC模型详细介绍,并应用到unity中
  • ?? JavaScript 双问号(空值合并运算符)
  • 作业2.25----通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作
  • 0101基础概念-图-数据结构和算法(Java)