cos

Python Number(numeric, 数字,数值)

家住魔仙堡 提交于 2020-05-03 18:27:07
Python Number( 数字 ) Python Number 数据类型用于存储数值。 数据类型是不允许改变的 , 这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。 以下实例在变量赋值时 Number 对象将被创建: var1 = 1 var2 = 10 您也可以使用 del 语句删除一些 Number 对象引用。 del 语句的语法是: del var1 [, var2 [, var3 [...., varN ]]]] 您可以通过使用 del 语句删除单个或多个对象,例如: del var del var_a , var_b Python 支持四种不同的数值类型: 整型 (Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。 长整型 (long integers) - 无限大小的整数,整数最后是一个大写或小写的 L 。 浮点型 (floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示( 2.5e2 = 2.5 x 10 2 = 250 ) 复数 (complex numbers) - 复数由实数部分和虚数部分构成,可以用 a + bj, 或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。 int long float complex 10

GAMES101-现代计算机图形学学习笔记(06)

淺唱寂寞╮ 提交于 2020-05-02 17:40:02
GAMES101-现代计算机图形学学习笔记(06) Lecture 06 Rasterization 2 Antialiasing and Z-Buffering GAMES101-现代计算机图形学学习笔记(06) 反走样 采样伪影(Artifacts) 反走样的一个思想 频域 傅里叶变换 采样与滤波 卷积相关 频域上的采样 定义 问题 通过超采样来反走样(MSAA) 超采样 其他反走样策略 Antialiasing and Z-Buffering) 原课程视频链接以及官网 b站视频链接: link . 课程官网链接: link . 反走样 上一节提到了光栅化三角形,而在实际中,屏幕会由于分辨率和采样频率的一些问题,导致三角形在光栅化过程中出现走样(当然,线条也会出现走样)。这是由于三角形的辺或者线段在观测中是无限细的,可以看做是带宽无限的信号,而对这些图元进行像素化的过程中,采样频率不足,导致采样过程中丢失高频成分,所以产生的信号失真,在屏幕上就表现为锯齿状的图像,这种现象就称为走样,如下图: 所以我们就需要反走样来减少或消除这种效果。基本上反走样方法可分为两类。第一类是通过 提高分辨率即增加采样点(提高采样频率) ,比如先在较高分辨率上对光栅进行计算,然后采用某种下采样算法得到较低分辨率的象素的属性,并显示在分辨率较低的显示器上,这类方法有SSAA

(数据科学学习手札75)基于geopandas的空间数据分析——坐标参考系篇

倾然丶 夕夏残阳落幕 提交于 2020-05-02 16:14:26
本文对应代码已上传至我的 Github 仓库 https://github.com/CNFeffery/DataScienceStudyNotes 1 简介   在 上一篇文章 中我们对 geopandas 中的 数据结构 展开了较为全面的学习,其中涉及到面积长度等计算的过程中提到了具体的计算结果与所选择的 投影坐标系 关系密切, 投影坐标系 选择的不恰当会带来计算结果的偏差,直接关乎整个分析过程的有效与否。   作为 基于geopandas的空间数据分析 系列文章的第二篇,通过本文你将会学习到 geopandas 中的 坐标参考系管理 。 2 坐标参考系基础 2.1 CRS   在一个二维的平面中,我们可以使用如图1所示的坐标系统,通过坐标$(x_{0},y_{0})$唯一确定点的位置: <center><img src="https://img2018.cnblogs.com/blog/1344061/202002/1344061-20200211213944042-420252549.png" style="zoom:100%;"></img></center><center><font size=2>图1</font></center>   现实世界中的地球作为一个球体,当我们想要用同样的方式利用坐标$(\phi_{0},\lambda_{0})

CodeForces 958F3 Lightsabers (hard) 启发式合并/分治 多项式 FFT

人走茶凉 提交于 2020-05-02 11:55:30
原文链接http://www.cnblogs.com/zhouzhendong/p/8835443.html 题目传送门 - CodeForces 958F3 题意   有$n$个球,球有$m$种颜色,分别编号为$1\cdots m$,现在让你从中拿$k$个球,问拿到的球的颜色所构成的可重集合有多少种不同的可能。   注意同种颜色球是等价的,但是两个颜色为$x$的球不等价于一个。   $1\leq n\leq 2\times 10^5,\ \ \ \ \ 1\leq m,k\leq n$。 题解   来自Helvetic Coding Contest 2018 online mirror.   比赛的时候太蠢了只yy了个分治$FFT$,只有25分钟不敢写(其实说不定来得及,赛后写启发式合并不到20分钟A了(不过看了组数据(某种颜色出现次数为$0$的特殊情况)))。   分治$FFT$不讲,常数大容易被卡掉。   更好的做法是启发式合并。   考虑颜色集合S的计算结果为$a_{0\cdots x}$,其中$a_i$表示取$i$个球得到的不同结果数。   当合并两个颜色集合的时候,新的结果为: $$c_i=\sum_{j=0}^{i}a_jb_{i-j}$$   显然就是一个多项式卷积直接$FFT$即可。   初始情况就是对于每一个颜色,设$cnt_i$为颜色$i$的出现次数

面向对象第一单元学习体会与总结

会有一股神秘感。 提交于 2020-05-02 06:35:22
摘要:不知不觉已经来到了大二的下学期,本学期我们又喜迎两大魔鬼课程——面向对象与操作系统,而这篇我在博客园上的开园之作便是OO的第一次博客作业辣。对于OO,我最最初的认识是通过中国大学慕课上的翁恺老师开设的面向对象课程,那时只是对Java与面向对象有了一个朦胧的认识,而回到学校并经过第一单元的学习之后,我便深刻体会到面向对象与过往的面向过程的巨大不同,接下来就通过对第一单元学习的总结来记录下这份感受。 1、作业分析: 第一次作业:    结构分析:   第一次作业要求是对只包含幂函数的一个多项式进行求导。由于这次的作业的逻辑不是特别复杂,再加上自己并没有从面向过程的思维中跳出,出现了一个类莽完的情况(尴尬)。对表达式的解析由于寒假pre_homework的帮助得以利用正则表达式轻松解决,然而依旧尴尬的是我的判断wf方法正是助教们极力反对的大正则。接下来提取各项要素我使用的是正则中group()的分组提取方法,并用HashMap存储,过程也并不复杂。反而是最后求导并输出的环节需要处理不少细节。不出意外,大部分的复杂度都集中在了求导函数中。 Bug分析:   如前所说,第一次作业我在强测中未被测出bug,但在互测中被爆了一个系数为0的时候输出漏了符号的错误。在自己测试得时候完美的略过了这种情况。。。 第二次作业:     结构分析:    第二次作业引入了简单三角函数

Discrete Cosine Transform

我只是一个虾纸丫 提交于 2020-05-02 05:54:04
离散余弦变换 由于实信号傅立叶变换的共轭对称性,导致 DFT后在频域中有一半的数据冗余。 离散余弦变换(DCT)在处理实信号时比离散傅立叶(DFT)变换更具优势。在处理声音信号这类实信号时,DFT得到的结果是复功率谱,其结果中的一半数据是没利用价值的。相比之下,DCT得到的结果是实谱,从而节省了不必要的运算。 一个序列的DFT就是将其周期拓展后取其DFS系数的一个周期。如果序列的开始及结尾处的幅值差异较大,那么这个周期拓展的序列便会有较多的高频分量。 而序列的DCT(实序列)相当于一个长度是它两倍的实偶序列的DFT(普通序列的DFT=实序列+虚序列),在储存同样个数的数据的情况下,DCT的能量更集中在低频。 DCT还有一个很重要的性质(能量集中特性):大多书自然信号(声音、图像)的能量都集中在离散余弦变换后的低频部分,因而 DCT在(声音、图像)数据压缩中得到了广泛的使用。由于 DCT是从 DFT推导出来的另一种变换,因此许多 DFT的属性在 DCT中仍然是保留下来的。(归一化之后,会在高频产生很多0系数,说明DCT比FFT变换具有更好的能量聚集度。) DCT在图像处理中优于DFT的性质是更高的能量聚集度,根本原因是二维DCT和二维DFT变换空间的基底不同。二维DFT的变换空间基底(谐平面波分量)是由sin和cos平面波共同构成的。而二维DCT的变换空间基底(谐平面波分量

SuperMap-WebGL-坐标系及转换说明

自古美人都是妖i 提交于 2020-05-02 03:26:14
转载自: https://blog.csdn.net/supermapsupport/article/details/89519310 一、坐标系介绍 我们先来列举下Cesium中的坐标系:WGS84经纬度坐标系(没有实际的对象)、WGS84弧度坐标系(Cartographic)、笛卡尔空间直角坐标系(Cartesian3)、平面坐标系(Cartesian2),4D笛卡尔坐标系(Cartesian4) 1、WGS84坐标系 World Geodetic System 1984,是为GPS全球定位系统使用而建立的坐标系统,坐标原点为地球质心,其地心空间直角坐标系的Z轴指向BIH (国际时间服务机构)1984.O定义的协议地球极(CTP)方向,X轴指向BIH 1984.0的零子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系。我们平常手机上的指南针显示的经纬度就是这个坐标系下当前的坐标,进度范围[-180,180],纬度范围[-90,90]。 我们都知道Cesium目前支持两种坐标系WGS84和WebMercator,但是在Cesium中没有实际的对象来描述WGS84坐标,都是以弧度的方式来进行运用的也就是Cartographic类:new Cesium.Cartographic(longitude, latitude, height),这里的参数也叫longitude

Python圈中的符号计算库-Sympy(转载)

天涯浪子 提交于 2020-05-02 02:36:22
《本文来自公众号“大邓带你玩python”,转载》 import math math.sqrt( 8 ) 2.8284271247461903 我们看看Python中结果 math.sqrt(8).math.sqrt(8 ) 8.000000000000002 本以为会得到8.0,但没想到得到8.00000000000000 2 。 一、为什么会这样? 如果我们平常计算的任务常常有类似于上面的例子这样的表达式,那么直接用python计算其结果只是真实值的逼近。如果这样的计算很大很多,误差会逐渐积累,这是我们不能忍受的,所以这时候就需要Python能处理这种数学符号计算。 二、什么是数学符号计算? 数学符号计算能处理表征数字的符号计算。这意味着 数学对象被精确地表示 ,而不是近似地表示,而具有未被计算的变量的数学表达式被留在符号形式中。 sympy 库简介 Sympy是Python的一个数学符号计算库。它目的在于成为一个富有特色的计算机代数系统。它保证自身的代码尽可能的简单,且易于理解,容易扩展。Sympy完全由Python写成,不需要额外的库。 sympy的表达式与我们平常的手写的数学表达式略微有所区别,下面是sympy的方程表示符号 加号 + 减号 - 除号 / 乘号 * 等号 Eq() 指数 ** 对数 log() e的指数次幂 exp() 上面的例子我们用Python实现一下

FFT&DFT简单总结(持续更新)

荒凉一梦 提交于 2020-05-02 00:33:04
FFT&DFT简单总结 前言 相信大家都知道大(chou)名(ming)鼎(zhao)鼎(zhu)的 FFT(fake_fake_true)(fast_fast_tle), 并且都有过被它各种玄学操作虐待的经历(大佬请绕路),那么希望这篇详细的FFT简介能够帮到你。 注:本文中的多项式的次数默认为2的整数次幂,实际中如果不是,需在后面补0。 What it is? 快速傅里叶变换(FFT)是一种能在$O(nlogn)$时间内将一个多项式转换为它的点值表示的算法。、 什么?你不知道点值表示? 好吧我也不知道 划重点 设$A(x)$为一个$n-1$次多项式,我们将$n$个不同的$x$带入,得到$n$个$y$,这$n$对$(x,y)$就可以确定1个$n-1$次多项式。 并不会证明 引入 FFT一般用来加速多项式乘法,也就是处理一个A(x)*B(x)的乘积C(x)。 考虑暴力算法,即$O(n^{2})$枚举每一项并相乘。这样做嘛, 太慢了!!! 既然我们刚刚学了点值表示,不妨用点值表示试一试? 一番尝试后我们发现,对于点值表示中的每个$x_{i}$,都有$C(x_{i})=A(x_{i})*B(x_{i})$,而$A(x_{i})$和$B(x_{i})$就是点值表示中的$y_{i}$!如此一来,只要$O(n)$枚举$x_{i}$就可以算出$C(x)$的点值表示,从而得到答案了!

如何用2 KB代码实现3D赛车游戏?2kPlus Jam大赛了解一下

点点圈 提交于 2020-05-01 18:02:13
  选自frankforce    作者:Frank    机器之心编译    参与:王子嘉、Geek AI       控制复杂度一直是软件开发的核心问题之一,一代代的计算机从业者纷纷贡献着自己的智慧,试图降低程序的计算复杂度。然而,将一款 3D 赛车游戏的代码压缩到 2KB 以内,听起来是不是太夸张了?本文作者 Frank 是一名资深游戏开发者,在本文中,他详细介绍了如何灵活运用代码压缩、编译、随机数生成、代码复用、设计模式等十八般武艺仅仅通过 2KB 的代码就能实现一款强大的 3D 赛车游戏。   几个月前,当我听说传奇 JS1K 游戏编程竞赛将不再举办时,当即把这件事告诉了其他开发者,最后我们决定在 itch 上搞一个 2KB 版的编程竞赛以弥补这一遗憾,我们将其称之为「2kPlus Jam」。这个竞赛的主要目标是制作一个只需要 2KB 压缩文件就可以容纳的游戏。如果你知道一个 3.5 英寸软盘可以存超过 700 个这样的游戏,你也就知道这有多小了。   我的作品(Hue Jumper)是对 80 年代赛车游戏渲染技术的致敬。这里的 3D 图像和物理引擎是我纯粹地使用 JavaScript 从零开始实现的,同时我还花了大量时间去调整游戏玩法和视觉效果。   游戏编程竞赛强调「变化」(shift),所以每当玩家通过关卡时,我就会改变整个世界的色调。我想在玩家通过关卡时