首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >回到数学的基础上

回到数学的基础上
EN

Code Golf用户
提问于 2017-10-03 06:54:28
回答 3查看 2K关注 0票数 5

简介:

我们都知道我假设的这三个基本的算术数学表。

代码语言:javascript
运行
复制
ADDITION:
 + | 1  2  3  4  5  6  7  8  9  10
----------------------------------
1  | 2  3  4  5  6  7  8  9  10 11
2  | 3  4  5  6  7  8  9  10 11 12
3  | 4  5  6  7  8  9  10 11 12 13
4  | 5  6  7  8  9  10 11 12 13 14
5  | 6  7  8  9  10 11 12 13 14 15
6  | 7  8  9  10 11 12 13 14 15 16
7  | 8  9  10 11 12 13 14 15 16 17
8  | 9  10 11 12 13 14 15 16 17 18
9  | 10 11 12 13 14 15 16 17 18 19
10 | 11 12 13 14 15 16 17 18 19 20

SUBTRACTION:
 - | 1  2  3  4  5  6  7  8  9  10
---------------------------------
1  | 0  1  2  3  4  5  6  7  8  9
2  | -1 0  1  2  3  4  5  6  7  8
3  | -2 -1 0  1  2  3  4  5  6  7
4  | -3 -2 -1 0  1  2  3  4  5  6
5  | -4 -3 -2 -1 0  1  2  3  4  5
6  | -5 -4 -3 -2 -1 0  1  2  3  4
7  | -6 -5 -4 -3 -2 -1 0  1  2  3
8  | -7 -6 -5 -4 -3 -2 -1 0  1  2
9  | -8 -7 -6 -5 -4 -3 -2 -1 0  1
10 | -9 -8 -7 -6 -5 -4 -3 -2 -1 0

MULTIPLICATION:
 * | 1  2  3  4  5  6  7  8  9  10
----------------------------------
1  | 1  2  3  4  5  6  7  8  9  10
2  | 2  4  6  8  10 12 14 16 18 20
3  | 3  6  9  12 15 18 21 24 27 30
4  | 4  8  12 16 20 24 28 32 36 40
5  | 5  10 15 20 25 30 35 40 45 50
6  | 6  12 18 24 30 36 42 48 54 60
7  | 7  14 21 28 35 42 49 56 63 70
8  | 8  16 24 32 40 48 56 64 72 80
9  | 9  18 27 36 45 54 63 72 81 90
10 | 10 20 30 40 50 60 70 80 90 100

For the sake of this challenge, division is excluded.

序列定义:

对于0索引序列和1索引序列,我们将遵循相同的步骤。因此,结果序列将成为f(0)+g(1)f(1)+g(2)等。

  • f (0索引)和g (1索引)都从(1,1)的加法表中开始。所以f(0) = 1+1 = 2g(1) = 1+1 = 2
  • 然后,我们转到减法表,如果n是奇数,则执行n步骤,如果n是偶数,则n向右移动。所以f(1) = 1-2 = -1 (它向下,因为n=1是奇数);g(2) = 3-1 = 2 (它向右,因为n=2是偶数)。
  • 然后我们转到乘法表,并做同样的操作:f(2) = 3*2 = 6g(3) = 3*4 = 12
  • 然后我们再回到加法表。另外,当我们越过10x10表的边框时,我们从底部到顶部,或者从右到左。所以从(7,9)向右走六步,就会到达(3,9)

结果序列为f(n)+g(n+1) ( n为0索引)。

这里的前六种颜色,按绿色、→蓝色、→紫色、→灰色、→红→橙顺序排列:

f (0-索引):(1+1) → (1-2) → (3*2) → (3+5) → (7-5) → (7*10)

g (1-索引):(1+1) → (3-1) → (3*4) → (7+4) → (7-9) → (3*9)

得到的序列是这两个序列的和。

下面是0索引序列f的前100项:

代码语言:javascript
运行
复制
2,-1,6,8,2,70,13,-4,7,7,-5,7,10,-7,70,12,-2,6,3,0,1,3,1,15,12,-3,30,10,-6,6,7,-6,21,13,-3,35,8,1,2,2,0,2,5,-2,35,17,-7,21,8,-5,6,8,-4,30,17,2,15,5,-1,1,2,-1,6,8,2,70,13,-4,7,7,-5,7,10,-7,70,12,-2,6,3,0,1,3,1,15,12,-3,30,10,-6,6,7,-6,21,13,-3,35,8,1,2,2

以下是1索引序列g的前100项:

代码语言:javascript
运行
复制
2,2,12,11,-2,27,9,-5,5,6,-5,18,12,-2,28,7,2,1,11,-9,1,4,-1,28,16,-6,18,7,-4,5,7,-3,27,16,3,12,4,0,10,11,0,3,7,3,63,12,-3,6,6,-4,6,9,-6,63,11,-1,3,2,-9,10,2,2,12,11,-2,27,9,-5,5,6,-5,18,12,-2,28,7,2,1,11,-9,1,4,-1,28,16,-6,18,7,-4,5,7,-3,27,16,3,12,4,0,10,11

以下是结果序列的前100项:

代码语言:javascript
运行
复制
4,1,18,19,0,97,22,-9,12,13,-10,25,22,-9,98,19,0,7,14,-9,2,7,0,43,28,-9,48,17,-10,11,14,-9,48,29,0,47,12,1,12,13,0,5,12,1,98,29,-10,27,14,-9,12,17,-10,93,28,1,18,7,-10,11,4,1,18,19,0,97,22,-9,12,13,-10,25,22,-9,98,19,0,7,14,-9,2,7,0,43,28,-9,48,17,-10,11,14,-9,48,29,0,47,12,1,12,13

挑战:

给定整数n,输出上述结果序列的n'th数(0索引序列和1索引序列之和)。因此,计算h(n) = f(n)+g(n+1)

挑战规则:

  • 结果序列总是0索引.我知道有些语言在默认情况下是1索引的,在这种情况下,您必须在输入函数/程序之后立即执行n-1,这样f(n)+g(n+1)将在f(0)+g(1) (而不是f(1)+g(2))开始。
  • 输出可以是任何合理的格式,因此允许使用带有.0的字符串或十进制,而不是整数。
  • 您可能已经注意到,也可能没有注意到;在上面的表格中,首先取顶部的数字,然后是左边的数字。

一般规则:

  • 这是密码-高尔夫,所以最短的答案(以字节为单位)-- wins. --不要让代码-高尔夫语言阻止你用非代码处理语言发布答案。试着为“任意”编程语言提供一个尽可能短的答案。
  • 适用标准规则作为您的答案,因此您可以使用STDIN/STDOUT,函数/方法具有适当的参数和返回类型的完整程序。你说了算。
  • 违约漏洞是禁止的。
  • 如果可能,请为您的代码添加一个带有测试的链接。
  • 此外,如有必要,请补充说明。

测试用例(0-索引):

代码语言:javascript
运行
复制
0       4
1       1
2       18
3       19
4       0
5       97
10      -10
50      12
60      4
61      1
62      18
63      19
100     0
111     17
1000    0
1994    98
2497    1
2498    12
2499    13
2500    0

注意/提示:这些序列每60项自我重复一次。

EN

回答 3

Code Golf用户

发布于 2017-10-03 12:08:21

Python 3,89字节

代码语言:javascript
运行
复制
lambda i:ord('HEVWD¥Z;PQ:]Z;¦WDKR;FKDo`;tU:OR;taDsPEPQDIPE¦a:_R;PU:¡`EVK:O'[i%60])-68

在网上试试!

票数 5
EN

Code Golf用户

发布于 2017-10-03 16:29:51

Excel,188个字节

硬编码结果:

代码语言:javascript
运行
复制
=CHOOSE(MOD(A1,60)+1,5,2,19,20,1,98,23,-8,13,14,-9,26,23,-8,99,20,1,8,15,-8,3,8,1,44,29,-8,49,18,-9,12,15,-8,49,30,1,48,13,2,13,14,1,6,13,2,99,30,-9,28,15,-8,13,18,-9,94,29,2,19,8,-9,12)-1

将1添加到所有查找结果中,保存3个字节,然后在结束时减去。这将-10转换为-9 5次。

票数 3
EN

Code Golf用户

发布于 2017-10-03 12:35:27

PowerShell,81字节(UTF-8)

代码语言:javascript
运行
复制
'HEVWD¥Z;PQ:]Z;¦WDKR;FKDo`;tU:OR;taDsPEPQDIPE¦a:_R;PU:¡`EVK:O'["$args"%60]-68

在网上试试!

ovs的回答港口到PowerShell。因为在阅读了这个挑战之后,我打算做一些类似的事情,更容易的是重复使用字符串。

票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/144334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档