首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

月球相当于北京几环?

提出问题 整个世界是一个可计算世界!基于计算机数学教学理念(CBM)宗旨是培养学生计算思维!当听到这首歌时,大家有没有想过,北京环线有多长?覆盖地域有多宽?...将选中拟合公式复制下来,进行环线周长函数定义....最后制作成动态模型。 北京几环可以覆盖月球? 如果未来人类在月球上定居的话, 那么月球的人相当于住在北京多少环呢? ?...计算得到: 环路半径[40] 39148.9 结果表明,月球约相当于北京40环! 那么火星呢? 其他行星呢? 这些问题可以利用Wolfram|Alpha来继续探究...... ?...以上是一个基于计算机数学教学典型例子。培养计算思维CBM课程设计不能仅仅停留在理论层面,而应该与实际软件工具相结合。

1.3K20

Lua连续教程之Lua数值

与其他很多变成语言不通,Lua语言还支持十六进制浮点数,这种十六进制浮点数部分由小数部分和以p或P开头指数部分组成。...算术运算 除了加减乘除、取负数等常见算术运算外,Lua语言还支持取整除法、取模和指数运算。 两个整数型值进行加减乘除和取负操作结果仍然是整型值。...Lua表达式同意支持幂运算,使用符号^表示,像除法一样,幂运算操作数也永远是浮点类型(整型值在幂运算时不能整除,例如,2^{-2}结果不是整型数)。...这两个运算符可以应用于任意两个值,当这两个值类型不同时,Lua语言认为它们是不相等;否则,会根据它们类型再对两者进行比较。...因此,数值表示在范围和精度上都是有限制。标准Lua使用64个比特位来存储整型值,其最大值为2^{63}-1,约等于10^{19};精简Lua使用32个比特位存储整型值,其最大值约为20亿。

4.1K20

Lua连续教程之Lua中表使用

表是Lua中最主要和强大数据结果。使用表,Lua语言可以以一种简单、统一且高效方式表示数组、集合、记录和其他很多数据结果。Lua语言也使用表来表示包和其他对象。...当调用函数math.sin时,我们可能认为是“调用了math库中函数sin”;而对于Lua语言来说,其实际含义是“以字符串sin”为键检索表math。 Lua语言中表本质上是一种辅助数组。...不过,在Lua语言中,数组索引按照惯例是从1开始(不像C语言从0开始),Lua语言中其他很多机制也遵循这个惯例。 在操作表时,往往必须事先获取列表长度。...Lua语言提供了获取序列长度操作符#。正如我们之前所看到,对于字符串而言,该操作符返回字符串字节数;对于表而言,该操作符返回表对应序列长度。...一方面,Lua语言在设计上力求简单;另一方面,这种操作符也是非常有争议,很多人就无理由认为该操作符容易导致无意编程错误。不过,我们可以使用其他语句在Lua语言中模拟安全访问操作符。

1.4K40

好玩lua

周末看了一下lua引擎一些实现,也体验了一下lua语言一些东西,本文简单介绍一下,后续有时间的话再写文章分析引擎实现。...以上这些似乎没什么大作用,因为我们执行简单地使用lua语言提供能力。而lua能力绝不止于此,lua称为胶水语言,除了可以嵌入其他语言中,还支持拓展。下面我们看如果拓展lua能力。...是通过一个栈进行通信lua调用c函数时候,c函数可以从栈中获取lua参数,也可也从栈中返回执行结果给lua。...name是导出函数名称,即在lua中可以调用函数。func则是对应函数,当在lua执行name函数时就会执行func代码。...3 lua变量存储设计 lua是动态类型语言,意味着一个变量类型是可以改变,下面看一下lua中是如何设计底层存储lua所有变量都使用TValue结构体来表示。

61820

redis中lua

前言 最近在看redislua,看了官网资料和网上一些文章,整理了lua相关内容,希望对大家有帮助。...目录 0. redis中运行lua流程正常流程 1.redis中lua概要信息     1.1 lua中调用redis命令     1.2 redis数据结构与lua数据结构对应关系     ...1.redis中lua概要信息 1.1lua中调用redis命令    在lua脚本中以2种方式调用redis命令 lua中调用redis方式 对异常处理方式 redis.call 遇到异常将抛出...luatable中有一个err做对应 Nil bulk, Nil multi bulk luabooleanfalse 注意: Lua boolean true 会变为Redis 中integer...Lua所有number类型数据,均会变成redis中integer,采用截取方式。如果需要lua返回float类型,请使用string作为返回值。

1.7K60

lua性能优化

Roberto Ierusalimschy写过经典Lua 性能提示文章,链接地址>> 我通过实际代码来验证,发现一个问题。...当我使用 LuaStudio 运行时,发现结果反而与提示相反,甚是奇怪,而使用luac进行运行,与作者给予提示相符,在某些地方性能可能有优化,比如读取35kb文件时,时间还是比较快(可能5.1版本做过优化了...日常Lua编码中,需要注意以下几点: 1)多使用local print(_VERSION) local startTime, endTime startTime = os.clock() for...差异非常大,无论是内存还是时间,主要原因是:Lua中字符串拼接都是新创建一个新字符串,有一个新创建一块内存、copy字符串动作,时间、空间上消耗都比较大。...综上所述,尽可能多使用local,减少查询性能损耗。json数据表如果需要转化为table时,改变数据存储结构可能减少很大内存使用。

1K20

RedisLua扩展

-2015 Lua.org, PUC-Rio 参考文档: 官方文档 Redis Lua 总结 Redis脚本 Redis执行Lua脚本示例 概要 Redis从2.6版本开始引入了对Lua脚本支持,通过在服务器中嵌入...客户端发送脚本会永久存在Redis中。这样其他客户端可复用这一脚本而无需使用代码完成相同逻辑 使用脚本限制 不支持集群。 原子操作。...如果脚本执行耗时,会对其他操作造成影响 使用 调用Lua脚本语法 传入脚本文件 # KEYS 与 ARGV 中间使用 “ , ” 逗号分隔,前后有空格 $ redis-cli --eval path/...* --eval,告诉redis-cli读取并运行后面的lua脚本 * path/to/redis.lua,是lua脚本位置,也可以直接为脚本字符串。...* KEYS[1] KEYS[2],是要操作键,可以指定多个,在lua脚本中通过KEYS[1], KEYS[2]获取 * ARGV[1] ARGV[2],参数,在lua脚本中通过ARGV[1]

92110

Lua速成课

以下速成课程是从正式Lua参考手册中极度浓缩摘录。 01 — Lexical conventions Lua是一种区分大小写语言。"and", "And" or "AND"是不一样。...以下是Lua语言关键字: ? 以下字符串表示: ? 文字字符串可以通过匹配单引号或双引号来分隔。 例如:'hello' 或者 "hello"。 在字符串之外任何地方注释以双连字符--开头方。...02 — Values and types Lua是一种动态类型语言,这意味着变量没有类型;only values do。 Lua有8种基本类型: ?...在第一次赋值给一个变量之前,它值是nil。 方括号用于索引一个表(例如value=table[x])。表中第一个值位于位置1(而不是C数组中0)。...04 — Statements Lua允许多个赋值。赋值语法在左侧定义了一个变量列表,在右侧定义了一个表达式列表。两个列表中元素以逗号分隔: ? 关系运算符(false或true): ?

71330

Lua控制结构

Lua语言提供了一组精简且常用控制结构,包括用于条件执行if以及用户循环while、repeat和for。...Lua语言将所有不是false和nil值当做真。 if then else if 语句先测试其条件,并根据条件是否满足执行相应then部分或else部分。else部分是可选。...Lua语言先测试while语句条件,若条件为假则循环结束;否则,Lua会执行循环体并不断地重复这个过程。...-- 输出第一个非空行 local line repeat line = io.read() until line ~= " " print(line) 和大多数其他编程语言不同,在Lua语言中,...第三个表达式exp3是可选,若不存在,Lua语言会默认步长值为1.如果不想给循环设置上限,可以使用常量math.huge: for i = 1, math.huge do if (0.3*i^3

41930

Lua文件操作

先简单介绍一下被迫使用LuaIO情境: 游戏支持玩家自定义上传头像,在排行榜中会显示玩家列表(包括本服、跨服),原有的做法是先检测CCUserDefault中是否存在指定图片key以及它状态。...中FileRename方法就可以实现文件重命名,但是线上版本没有导出相应方法,导致目前只能通过LuaIO来实现。...最近再看lua源码时,才真正意识到luaconf.h中定义 LUAI_MAXCSTACK 是 cclosureupvalue上限,而lua内存上限似乎没有找到明确代码。...(8KB内存)这种技巧,都是参考《Lua程序设计 第二版》第21章  I/O库,网上应该有中文版PDF下载,自行搜索吧… 本文参考: lua cclosure upvalue 数量限制 Lua编码那些陷阱...Lua2.4 内存分配 mem.c

1.9K10

lua 和c调用

lua中使用c动态库,像luacjson(支持unicode),luasocket,都是以动态链接库形式在lua中使用,至于怎么写这些动态链接库很少有教程说到,下面我就说说如何把c文件编译成动态库。...首先,假设需要在lua中调用一个在c中实现求和函数,函数名add(a,b)。 我给这个测试库取名为dylib,它包含一个函数add。...当执行到require “dylib.test”时,lua解析器会去dylib/test.so文件中寻找并执行函数名为luaopen_dylib_test函数。...因为require时候会把”dylib.test”转成”dylib/test”默认去该路径下寻找so或者lua文件。当然,你修改了搜索路径那是另外一回事了。 基本就是这样子了。...对于一个Lua文件来说,我们可以很轻易改掉它名称,但是对于一个C程序库来说,我们是没有办法编辑其中luaopen_函数名称

65920

Redis Lua脚本使用

Lua 数据类型和 Redis 数据类型之间转换 当 Lua 通过 call() 或 pcall() 函数执行 Redis 命令时候,命令返回值会被转换成 Lua 数据结构。...Lua tables ,tables 内 err 域包含了错误信息 Redis Nil 回复和 Nil 多条回复转换成 Lua booleans false 从 Lua 转换到 Redis:...域 Lua tables,转换成 Redis 状态回复 一个带单个 err 域 Lua tables ,转换成 Redis 错误回复 Lua booleans false 转换成 Redis... Nil bulk 回复 从 Lua 转换到 Redis 有一条额外规则,这条规则没有和它对应从 Redis 转换到 Lua 规则: Lua booleans true 转换成 Redis 整数回复中...启用Lua脚本非阻塞异步调试(更改将被丢弃)。 SYNC。启用阻止Lua脚本同步调试(保存对数据更改)。 NO。禁用脚本调试模式。

1.6K10
领券