- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个迷你游戏,如果我将 DIN-Ax 作为输入,我需要找出可以在 DIN-A0 纸上画多少行。例如:
;car horizontal and cdr vertical lines
(define A1 (list 0 1))
(define A2 (list 1 1))
(define A3 (list 1 3))
(define A4 (list 3 3))
(define A5 (list 3 7))
(define A6 (list 7 7))
(define A7 (list 7 15))
(define A8 (list 15 15))
(define A9 (list 15 31))
(define A10(list 31 31))
如果我输入 A1,我可以绘制 0 条水平线和 1 条垂直线,依此类推。我手工计算了它们,但我想知道是否有更优雅的算法来自动获取它,因为我无法开发一个。以下是有关 DIn 的更多信息: http://en.wikipedia.org/wiki/ISO_216
谢谢
编辑:这说明了我的意思。
http://www.prepressure.com/library/paper-size/din-a4
使用 A1,您可以绘制 (0 1),表示 1 条垂直线。使用 A2,您可以绘制 (1 1) 表示 1 条水平线和 1 条垂直线,因为 A0 工作表中有四个 A2。依此类推 A3 (1 3)...
编辑:几乎完成,我只需要弄清楚如何处理第一次迭代,因为如果我写 (get-cuts 1 0 0 0) 我得到 DIN Ax-1 削减。当我有更多时间时,我会解决它。
(define (get-cuts DIN-A count vl hl)
(cond
((= DIN-A count) (list vl hl))
((not(= (modulo count 2) 0)) (get-cuts DIN-A (+ count 1) hl (+(* hl 2) 1))) ; DIN-A impares
((= (modulo count 2) 0) (get-cuts DIN-A (+ count 1) hl hl )) ; DIN-A pares
)
)
最佳答案
你想要的是一种算法,所以我做了一个:
假设您可以为 A0 绘制 0 水平线(我们称之为 A0.hl
)和 0 垂直线行(我们称之为 A0.vl
)。
然后对于A1你可以分别绘制A0.vl
和(A0.vl*2)+1
水平线和垂直线。
与 A2 类似,您可以绘制 A1.vl
(A1 的垂直线数)水平线和完全相同数量的垂直线(这是因为我们正在检查一对数字 [2] ).
因此,对于任何 x>1,x%2 != 0
:对于 Ax,您可以绘制 A x-1.vl 水平线和 (A*x-2.vl* * 2) + 1
垂直线。
并且对于任何 x>1,x%2 == 0
:对于 Ax,您可以绘制 Ax -1.vl 水平线和 Ax-1.vl 垂直线。
你可以用尾递归来做到这一点;也许保留对数和奇数(4 个变量)的水平和垂直线的数量,但也许有一种简单的方法不必保留所有这些变量。我会再考虑一下,但我现在得走了。
希望这可以帮助您获得更好的主意!
如有任何疑问,请告诉我们 ;)
关于algorithm - Racket - 切割 din Ax 的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30279134/
我意识到“强类型”和“软类型”的定义是松散且易于解释的,但我还没有找到关于无类型 Racket (根据我的理解意味着动态类型)和类型 Racket 的明确定义。 再一次,我确定它不是那么简单和干燥,但
我来自 Java 和 Python,很难理解面向对象代码在 Racket 中的工作方式。 给定 (define food% (class object% (super-new) (i
我安装了 Sublime Text - Racket Package,但没有用。出现此错误。我该怎么办。 [Errno 2] No such file or directory: 'racke
.rkt是“常规”Racket 源代码的常规文件扩展名。在文档中,我还看到了 .rktl 和 .rkts 正在使用。什么是.rktl和 .rkts用于,还有我不知道的更多 Racket 文件扩展名吗?
假设我为具有“中心”的集合定义了一个结构体。 (struct centered-set (center elems)) 我想保证以下条件。 elems是一个集合。 center是 elems 的成员(
我想要一个函数,它接受一个字符串,由一个 python 格式的树组成,就像这样 "[0, [1, 0]]" 并输出一个可用的 Racket 列表,像这样 '(0 (1 0)) 我的第一步是将字符串转换
是否有 Racket 内置函数列表?我正在寻找类似 this one 的列表对于 python 。我似乎无法在文档中找到一个。 最佳答案 这里有一些列表: Racket文档中所有函数的索引: http
虽然 Racket 允许创建 GUI 应用程序(甚至游戏),但我想知道它是否适合与 Things 一样在视觉上发布商业应用程序或 OmniOutliner .这样的应用程序会感觉原生还是看起来像一个不
和node的npm一样,我们使用package.json来解决依赖。 我试过raco pkg,它似乎只是一种开发/发布包的方式,而不是解决外部依赖。 最佳答案 如上所述,Racket 中的 info.
我是 Racket 的新手,尽管到目前为止我已经设法使用 servlet 并让一些东西发挥作用。我现在想做的是验证一个简单的用户名/密码 POST 请求。我已经通过“web-server/formle
我正在为现场编码表演创建一个程序,为此我需要一个基本的 S 表达式代码编辑器(我输入的内容将在适当的语法上下文中评估为 Racket 代码)。 由于 DrRacket 本身是用 Racket 编写的,
和node的npm一样,我们使用package.json来解决依赖。 我试过raco pkg,它似乎只是一种开发/发布包的方式,而不是解决外部依赖。 最佳答案 如上所述,Racket 中的 info.
我正在尝试在 Racket 中编写模块元语言 mylang ,它接受将修改后的主体传递给的第二种语言,例如: (module foo mylang typed/racket body) 相当于: (m
我没有运气找到一种方法来按照我想要的方式进行这项工作,所以如果有人能提供帮助,我将不胜感激。 我想要的是能够在终端上做到这一点: > racket 然后能够输入 Racket 命令并让它们编译。像,
我来自 Java 世界,对 Racket 充满热情。 想知道类似Maven的工具在哪里。如果你不熟悉Maven,还有Scala中的SBT,Android中的gradle,Elixir中的mix等,作为
在 typed/racket 我有一个像 [(? procedure? p ) (apply p xv*)]会导致错误: Type Checker: Function has no cases in:
我是 Lisp-scheme 的新手,对整个函数范式还很陌生,我目前正在做一个任务,要求我重载一个名称相同但参数集不同的函数 racket .下面是我试图实现的一个例子: #lang racket (
有没有办法在 Racket 中获取对象的唯一标识符?例如,当我们使用 Racket 的 eq?运算符来检查两个变量是否指向同一个对象,它使用什么标识符来实现这种比较? 我正在寻找类似 python 的
当我在 Dr. Racket 或从命令行运行我的测试时,失败的测试总是在一行上。 例如, (bad (interp-t-prog (list '(class posn extends object (
我有以下代码: (plot (function sin (- pi) pi #:label "y = sin(x)")) 但是在解决 SICP 时我没有遇到这样的结构:#:label "y = sin
我是一名优秀的程序员,十分优秀!