- A+
召唤兽初值计算器,科学计算器上怎么输入角度值?
不请自来。
我把题主的问题变换一下,如何构造0--90度之间整数度数的正弦函数表。
以下特殊角的正弦值众所周知,如18º,30º,45º,60º,等。
利用两角和,两角差,半角等公式,我们可以计算出诸如12º,9º,6º,3º等的正弦值。
但是,这样能计算出的最小整数度数为3º。怎么办?
考虑三倍角公式, Sin3θ=3Sinθ-4Sin³θ
设x=Sin1º,则Sin3º=3x-4x³。这是个一元三次方程,至少有一个实数根,可公式解不记得了,而且很繁琐。但是没关系,我们只要数值解,有个好办法:迭代。具体操作如下,
设x=Sin10º,则1/2=3x-4x³ 。是的,我想算出的是Sin10º,再计算Sin(10º-9º)。
移项,得 x=4/3 x³+1/6。取x初值为1/6,以下迭代,使用计算器加减乘除计算得出,过程中保留9位有效数字。
第1次迭代,
X①=4/3(1/6)^3+1/6≈0.172839506
第2次迭代,
X②≈ 0.173551093
第3次迭代,
X③≈ 0.173636474
第4次迭代,
X④≈ 0.173646766
我们取4位有效数字,则Sin10º≈0.1736
有了Sin10º,0--90度之间所有整数度数的正弦值就可以计算出来了。
++++++++++++++++++++++++++++++++++
刚看了一个资料,古希腊的托勒密没有解三次方程,就算出了间隔为1/2度的正弦表,就是编纂了《至大论》(又称“天文学大全”)的那位“反动”学术权威。
简单介绍一下托老师的思路。
托老师也是先算到了Sin3º,然后继续计算Sin1.5º和Sin0.75º,我们知道Sin1º肯定介于这二者之间。另外,对于锐角的正弦值,有以下不等式:
若0<α<β≤90º,则
α/β<Sinα/Sinβ。
∵ 1º<1.5º
∴ Sin1º>Sin1.5º/1.5≈0.017451
∵ 0.75º<1º
∴ Sin1º<Sin0.75º/0.75≈0.017453
如果我们要求正弦值保留到小数点后五位,那么托老师可以负责任地说,Sin1º≈0.01745。
实际上,托勒密(约公元90--168)构造出了间隔为0.5º的正弦表,计算精度为(1/60)^3=1/216000。
++++++++++++++++++++++++++++++++++
据说,知乎有句名言:离开剂量谈毒性,近于耍流氓。那么,不给出误差范围谈数值计算,也应该近乎耍流氓了。
以上。
Ps
托老师使用的不等式有个简单的非初等数学的证明。考察函数f(x)=sinx/x,此函数在(0,90º]区间上为减函数。
电容器补偿容量大小计算公式是什么?
电容器补偿容量的大小,与电力负荷的大小和功率因数的高低有关补偿容量大小的计算式为Q=P(tanφ1-tarφ2)式中Q-补偿电容的容量,kvar;
P-平均有功负荷,kW;tanφ1-补偿前功率因数角的正初值a;tanφ2-补偿后功率因数角的正切值例如:某一用户的有功负荷为100kW,补偿前功率因数为0.6,需要把功率因数提高到0.88,求需要加装多大的补偿电容器?先用计算器或查三角函数表可得:当cosφ1=0.6时,tanφ2=1.33;当cosφ2=0.88时,tanφ2=0.53代入上述公式得Q=100×(1.33-0.53)=100×0.8=80(kvar)由此即可求得,需要装设容量为80kvar的电容器即可
如何学习单片机?
1.Verilog HDL描述
可综合电路Verilog HDL语言是对已知硬件电路的文本描述。所以编写前:
对所需实现的硬件电路“胸有成竹”; 牢记可综合Verilog HDL与电路结构一一对应的关系; 确认电路指标是什么:性能?面积? 硬件思维方式,代码不再是一行行的代码而是一块一块的硬件模块;
达到以上几点,就可以写出行云流水般的高质量代码。关于代码与硬件电路的对应关系,参见如下图片,引用自Synopsys官方文档和几本参考书:
2、自动化生成代码如果一定要有奇淫技巧的话,那么代码自动化生成技术就一定可以配得上这个称号。
近十年来,数字集成电路规模和复杂度飞速提高。这给数字集成电路工程师带来了不仅是脑力上的劳动的增加,更多是体力重复性工作的增多。传统的手工代码的编写存在很多弊端。
首先对于模块的代码工程师,要面对许多设计文件。而这些文件之间可能相互不一致,给代码的编写带来了很多的困扰。
其次,代码工程师需要将这些文件中的很多设计信息体现在代码中,其中一些信息是重复性的誊写。这不仅带来了很多枯燥复杂的工作量而且人工参与过多也容易引入很多粗心带来的错误。
再次,由于各个模块连接信号之多导致信号文件的手写工作量很大。每个信号文件小则几千行大则上万行信息。而且一旦有信号连接的变动需要相应修改多个模块的信号文件。
最后,如果设计文件改动相应的设计文件很容易出现哪几处忘记改动的问题。
而Perl脚本语言又有着强大的处理文本的能力。将脚本语言应用于数字电路设计中,作为设计文档和EDA工具的黏合剂,能够大大增加设计的速度。
具体方法为:使用脚本语言从设计文档中提取有用的信息来生成想要的Verilog HDL代码,从而大大减少了IC设计者的工作量,并提高了代码的质量。其好处有: (1)很好的设计一致性:保证了设计概念一旦变动即设计文档稍加修改,对应的Verilog HDL代码就会相应的改变,不需要工程师手动改变代码。 (2)兼容性强:该自动生成代码工具中设置了一个配置文件,供设计工程师的配置修改。对于不同的项目,通过修改配置该文件可以直接是代码相应变化,有一定的灵活性。此外,该自动生成代码工具已经应用于两个以上项目中,实践证明有很好的兼容性。 (3)代码维护方便:对于设计代码的更新或升级,只需要重新运行下该工具即可,不需要一点点该写代码。 (4)使用简单:将很多脚本集成在一起,使用工具时只需要运行一条命令即可。 本文将举一个Perl语言在代码自动生成中的应用实例,下图为一SoC芯片中全芯片的时钟控制电路框图:
时钟控制模块实现配置PLL参数、选择输出时钟源、时钟分频、时钟门控、bank切换、输出时钟等功能。3G、4G是系统通讯单元,向时钟控制单元申请时钟。PLLs是时钟源,是时钟控制单元的输入。 时钟控制单元有七大主要模块,分别为时钟源控制模块、bank切换模块、分频模块、时钟门控模块、多路选择器模块、寄存器、3G4G时钟握手模块。时钟源控制模块控制时钟源的大小、开关。bank切换模块使时钟控制单元能正常工作在不同的电压下。
时钟控制单元的的工作机理如下:首先,外部模块向时钟控制单元请求时钟,并修改并写寄存器状态;时钟源控制单元根据寄存器中的内容配置时钟源Plls,并提供了所有的时钟源。然后,分频器完成这些时钟源预分频的操作,并将其作为多路选择器的时钟源。而多路选择器则从输入的时钟源中选择输出主时钟。 主时钟通过分频模块产生所有的分频使能信号,这个过程中,需根据寄存器所配置的分频数来输出不同的频率的时钟。同时,根据系统的实时需求,通过由SPCU控制的bank选择器完成门控时钟的实现,降低系统的功耗。
以上是时钟控制模块的功能分析,那么如何通过代码自动生成技术来实现呢? (1)首先,我们把这些模块梳理下,形成一个自顶向下的层次结构,如下图。如图中所示,顶层模块完成对底层模块的连接,底层模块实现时钟控制单元的功能。
针对代码自动生成问题,对于顶层模块来说,承担的功能是自动地将底层数十个模块连接起来。对于底层模块来说,需要根据不同的功能定制需求,来自动化地生成所有功能性的代码,然后被顶层调用和连接。这样的话,就存在两个问题:[1]自动生成顶层模块?[2]自动生成底层模块?
(2)顶层模块:通常来说,对于一个复杂的SoC芯片,会有万数量级的信号需要进行匹配和连接。而能够自动生成的信号文件中的信号连接有两个特点:一是信号命令规律性强二是信号的连接关系可以从设计文件中体现。满足了这两点,便可以实现信号文件的自动化。
(3)底层模块此处即可体现Perl脚本强大的数据处理功能,针对该问题,将脚本划分为三类:提取脚本、生成脚本和集成脚本三种。提取脚本用来从输入文件中提取有用的设计信息到存储单元中;生成脚本从存储单元获得有用信息来生成各个功能模块的代码;集成脚本将所有的脚本集成在一个脚本里,方便统一化使用。以下是代码生成的脚本流程图:
如图所示,输入的文件都是excel和文本形式,Perl脚本首先读取技术文档,从中解析出时钟模块所需的连接、频率、时钟域等信息,基于此信息建立一个数据库。然后,根据实际芯片的具体需求,即配置文件,生成相应的自动化控制模式和需求。 最终,依据配置文件和数据库,完成所有所需verilog代码的生成。需要注意的是,并不是所有的代码都可以自动生成,有些结构特殊的电路,只能通过手工编写来完成。所以,自动编写通常完成较为规整的、有规律性的代码,手工书写作为补充。这样即可保证得到高质量的代码。
超级CRC计算器HotCRC中的四点攻击为何可以克隆第三方CRC计算器?
HotCRC计算器中的四点攻击依据菜农的“CRC可逆规则”,即在CRC多项式中,发现“+1”或“+X0”时,CRC可逆。
对于左移算法,权值的最低位D0为“1”时,CRC可逆,否则不可逆。
故在左移可逆的CRC表格中,数组的0x01处即CRC[0x01]里就是CRC权值!
对于右移算法,权值的最高位Dn-1为“1”时,CRC可逆,否则不可逆。
故在右移可逆的CRC表格中,数组的0x80处即CRC[0x80]里就是CRC权值!
故“四点攻击”中的01和80这两个特殊采样值就是攻击左移或右移的依据。
而“四点攻击”中的00和FF这两个特殊采样值就是攻击初值和出值的依据。
所以,HotCRC计算器可以攻击并克隆任意CRC计算器或CRC表格。
操作方法非常简单,只要在功能里选择“逆向表格或算法”,然后点击“采样”,再从第三方CRC计算器上得到四个特定值下的四个CRC计算结果,然后点击“破解”,即可得到CRC简写式即CRC多项式。
如果你克隆即想永久保存这个CRC简写式,可以在点击“保存”,这样就存入了“本地文件系统”。
特别注意:你在某个平台,某个浏览器中保存的。 换个平台或浏览器是看不见的。
这个克隆第三方CRC计算器(简写式)的功能非常方便! 你可以保存到电脑,也可以保存到平板或手机。
它如同菜农亲自为你临时改写了程序源码,实际上菜农根本不知道!
求角3的度数怎么列算?
不请自来。
我把题主的问题变换一下,如何构造0--90度之间整数度数的正弦函数表。
以下特殊角的正弦值众所周知,如18º,30º,45º,60º,等。
利用两角和,两角差,半角等公式,我们可以计算出诸如12º,9º,6º,3º等的正弦值。
但是,这样能计算出的最小整数度数为3º。怎么办?
考虑三倍角公式, Sin3θ=3Sinθ-4Sin³θ
设x=Sin1º,则Sin3º=3x-4x³。这是个一元三次方程,至少有一个实数根,可公式解不记得了,而且很繁琐。但是没关系,我们只要数值解,有个好办法:迭代。具体操作如下,
设x=Sin10º,则1/2=3x-4x³ 。是的,我想算出的是Sin10º,再计算Sin(10º-9º)。
移项,得 x=4/3 x³+1/6。取x初值为1/6,以下迭代,使用计算器加减乘除计算得出,过程中保留9位有效数字。
第1次迭代,
X①=4/3(1/6)^3+1/6≈0.172839506
第2次迭代,
X②≈ 0.173551093
第3次迭代,
X③≈ 0.173636474
第4次迭代,
X④≈ 0.173646766
我们取4位有效数字,则Sin10º≈0.1736
有了Sin10º,0--90度之间所有整数度数的正弦值就可以计算出来了。
++++++++++++++++++++++++++++++++++
刚看了一个资料,古希腊的托勒密没有解三次方程,就算出了间隔为1/2度的正弦表,就是编纂了《至大论》(又称“天文学大全”)的那位“反动”学术权威。
简单介绍一下托老师的思路。
托老师也是先算到了Sin3º,然后继续计算Sin1.5º和Sin0.75º,我们知道Sin1º肯定介于这二者之间。另外,对于锐角的正弦值,有以下不等式:
若0<α<β≤90º,则
α/β<Sinα/Sinβ。
∵ 1º<1.5º
∴ Sin1º>Sin1.5º/1.5≈0.017451
∵ 0.75º<1º
∴ Sin1º<Sin0.75º/0.75≈0.017453
如果我们要求正弦值保留到小数点后五位,那么托老师可以负责任地说,Sin1º≈0.01745。
实际上,托勒密(约公元90--168)构造出了间隔为0.5º的正弦表,计算精度为(1/60)^3=1/216000。
++++++++++++++++++++++++++++++++++
据说,知乎有句名言:离开剂量谈毒性,近于耍流氓。那么,不给出误差范围谈数值计算,也应该近乎耍流氓了。
以上。
Ps
托老师使用的不等式有个简单的非初等数学的证明。考察函数f(x)=sinx/x,此函数在(0,90º]区间上为减函数。
- 我的微信公众号
- 扫一扫关注
- 我的新浪微博号
- 扫一扫关注