Programming in Lua, 2Nd Edition - Chapter 18: The Mathematical Library

 

 

 

 

 

Part III: The Standard Libraries

 

Chapter 18: The Mathematical Library

 

所有三角函数使用弧度制。你可以使用deg rad 函数在度和弧度间转换。也可以重定义三角函数为使用度而不是弧度。

 

local sin, asin, ... = math.sin, math.asin, ...

local deg, rad = math.deg, math.rad

math.sin = function (x) return sin(rad(x)) end

math.asin = function (x) return deg(asin(x)) end

 

math.random 函数产生伪随机数,可以以三种方式调用。不带参数调用返回[0 1) 之间的值。以整数n 调用返回[1n] 之间的值。以整数l u 调用返回 [l, u] 之间的值。

 

可以调用randomseed 函数为随机数发生器设置种子。可以用当前时间做种子:

 

math.randomseed(os.time())

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Contents Preface xiii I The Language 1 1 Getting Started 3 1.1 Chunks 4 1.2 Some Lexical Conventions 5 1.3 Global Variables 6 1.4 The Stand-Alone Interpreter 7 2 Types and Values 9 2.1 Nil 10 2.2 Booleans 10 2.3 Numbers 10 2.4 Strings 11 2.5 Tables 13 2.6 Functions 17 2.7 Userdata and Threads 17 3 Expressions 19 3.1 Arithmetic Operators 19 3.2 Relational Operators 20 3.3 Logical Operators 21 3.4 Concatenation 22 3.5 Precedence 22 3.6 Table Constructors 22 vii Property of Ian Bloss <ianlinkcd@gmail.com> viii Contents 4 Statements 27 4.1 Assignment 27 4.2 Local Variables and Blocks 28 4.3 Control Structures 30 4.4 break and return 34 5 Functions 35 5.1 Multiple Results 36 5.2 Variable Number of Arguments 39 5.3 Named Arguments 42 6 More About Functions 45 6.1 Closures 47 6.2 Non-Global Functions 50 6.3 Proper Tail Calls 52 7 Iterators and the Generic for 55 7.1 Iterators and Closures 55 7.2 The Semantics of the Generic for 57 7.3 Stateless Iterators 58 7.4 Iterators with Complex State 60 7.5 True Iterators 61 8 Compilation, Execution, and Errors 63 8.1 Compilation 63 8.2 C Code 67 8.3 Errors 67 8.4 Error Handling and Exceptions 69 8.5 Error Messages and Tracebacks 70 9 Coroutines 73 9.1 Coroutine Basics 73 9.2 Pipes and Filters 76 9.3 Coroutines as Iterators 79 9.4 Non-Preemptive Multithreading 81 10 Complete Examples 87 10.1 Data Description 87 10.2 Markov Chain Algorithm 91 II Tables and Objects 95 11 Data Structures 97 11.1 Arrays 97 Property of Ian Bloss <ianlinkcd@gmail.com> ix 11.2 Matrices and Multi-Dimensional Arrays 98 11.3 Linked Lists 100 11.4 Queues and Double Queues 100 11.5 Sets and Bags 101 11.6 String Buffers 103 11.7 Graphs 104 12 Data Files and Persistence 107 12.1 Data Files 107 12.2 Serialization 109 13 Metatables and Metamethods 117 13.1 Arithmetic Metamethods 118 13.2 Relational Metamethods 120 13.3 Library-Dened Metamethods 122 13.4 Table-Access Metamethods 122 14 The Environment 129 14.1 Global Variables with Dynamic Names 129 14.2 Global-Variable Declarations 131 14.3 Non-Global Environments 132 15 Modules and Packages 137 15.1 The require Function 138 15.2 The Basic Approach for Writing Modules 141 15.3 Using Environments 143 15.4 The module Function 144 15.5 Submodules and Packages 145 16 Object-Oriented Programming 149 16.1 Classes 151 16.2 Inheritance 152 16.3 Multiple Inheritance 154 16.4 Privacy 156 16.5 The Single-Method Approach 158 17 Weak Tables 161 17.1 Memoize Functions 163 17.2 Object Attributes 164 17.3 Revisiting Tables with Default Values 165 III The Standard Libraries 167 18 The Mathematical Library 169 Property of Ian Bloss <ianlinkcd@gmail.com> x Contents 19 The Table Library 171 19.1 Insert and Remove 171 19.2 Sort 172 19.3 Concatenation 173 20 The String Library 175 20.1 Basic String Functions 175 20.2 Pattern-Matching Functions 177 20.3 Patterns 180 20.4 Captures 183 20.5 Replacements 185 20.6 Tricks of the Trade 189 21 The I/O Library 193 21.1 The Simple I/O Model 193 21.2 The Complete I/O Model 196 21.3 Other Operations on Files 199 22 The Operating System Library 201 22.1 Date and Time 201 22.2 Other System Calls 203 23 The Debug Library 205 23.1 Introspective Facilities 205 23.2 Hooks 210 23.3 Proles 211 IV The C API 215 24 An Overview of the C API 217 24.1 A First Example 218 24.2 The Stack 221 24.3 Error Handling with the C API 225 25 Extending Your Application 229 25.1 The Basics 229 25.2 Table Manipulation 231 25.3 Calling Lua Functions 235 25.4 A Generic Call Function 236 26 Calling C from Lua 241 26.1 C Functions 241 26.2 C Modules 244 Property of Ian Bloss <ianlinkcd@gmail.com> xi 27 Techniques for Writing C Functions 247 27.1 Array Manipulation 247 27.2 String Manipulation 249 27.3 Storing State in C Functions 251 28 User-Dened Types in C 259 28.1 Userdata 260 28.2 Metatables 262 28.3 Object-Oriented Access 265 28.4 Array Access 267 28.5 Light Userdata 268 29 Managing Resources 269 29.1 A Directory Iterator 269 29.2 An XML Parser 271 30 Threads and States 281 30.1 Multiple Threads 281 30.2 Lua States 285 31 Memory Management 293 31.1 The Allocation Function 293 31.2 The Garbage Collector 295 Index 299

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值