Tag: 数学

VBScript 计算阴影面积 Monte Carlo 蒙特卡罗

下午在开会期间 济南公司的同事发了一道题在 QQ群上 然后我一看 这题按常规来解的话还不太好弄 但是用 Monte Carlo 蒙特卡罗 算法 计算机来算则是异常的简单(但是只能无限接近答案) 正方形的面积是 20 解题思路 就是尽可能的随机撒越多越好的点 然后就统计落在阴影处的点数占总数的比例. 可以通过和圆心距离来判断是否在圆内 圆上还是圆外. 第一次判断是判断点是不是在1/4圆外 然后第二次就判断是否在中间一整个圆内. ' HelloACM.com Const N = 1000000 C = 0 …

数学证明 0.9 … 无限循环等于1

中学数学就学了无限循环小数的概念, 比如 1/3 用分数就是 0.33333.. 除不尽.但是相信很多人对 0.9999.. 是不是等于1就表示怀疑, 尽管 3 * (1/3) = 3 * 0.3333 也就证明了 0.999 无限循环等于1.类似的也可以用 9*(1/9)=1=9*(0.1111循环)=0.999循环 另一种证明也很简单直观, 假设 x = 0.999循环 那么 10x = 9.9999循环; …

学习笔记:双线性插值的C/C++代码

双线性插值,英文也叫 Bilinear Interpolation 是个对数据非常不错拟合方法.可以想像成在二维网格下对X和Y方向上的两次插值.具体的公式什么的就不多说了,可以参见维基百科 这个插值方法估计很多做研究的都需要用上(当然我不使用matlab), 于是我把公式翻译成C/C++函数, 欢迎使用.如果精度不够,可以改成 双精度 double 类型. // https://helloacm.com inline float BilinearInterpolation(float q11, float q12, float q21, float q22, float x1, float x2, float y1, float …

在步步高软驱1号或者98型学生电脑上算圆周率

英文同步 之前在 SB2000 上算过圆周率 ,速度特别慢.当我拿到步步高软驱1号 , 我就准备把 SB2000 放 ebay 上拍了 :). 步步高上也有个BASIC,想比较一下之前算圆周率的程序在步步高上运行如何,就请继续往下看. 原来的BASIC程序如果不修改是无法直接运行在步步高上的.尽管如此,BASIC程序还算是当时所有8位兼容机带键盘的中可移植性较强的语言(当然还有LOGO,不过BASIC能做的事情会比较多) 顺便说一下,之前我装了仿真软驱,把一个U盘格成100张1.44M 的软盘,往”软盘”上写数据得借助PC上的软件,这样一来,在步步高和PC上交换数据就特别麻烦.后来,我翻出了一个老的 128M 的U盘,把它格成1张1.44M 的软盘(其它空间就浪费了),但是这样一来,这个U盘可以很容易(不用借助软件)就可以在电脑上识别,也可以在仿真软驱上识别(这时候指示灯必须在000 号盘), 交换数据因些变得很简单. 总结了几个SB2000上的F-BASIC和步步高上的BASIC的区别.我个人还是比较喜欢步步高的,感觉步步高当年开发者程序设计水平比较高,而且整体来说, 步步高软驱1号或者98型学生电脑都把这个”单片机”做到极致了. 1. 步步高上的 ‘THEN‘ 不能省略,但在SB2000上的F-BASIC却可以省, 因此在步步高上, 必须要写全了. …