如何用R或任何其他自由可用的编程语言有效地计算双数基k数(和/或其反数?)>

问题描述 投票:2回答:1

尽管这个问题在StackOverflow上已经有部分答案

,但这些答案与标题或标签中具有正确的过程/概念名称(bijective (base-k) numeration)的问题不相关。我希望许多答案本质上都是这些现有答案的链接。

此问题在How to list from A to Z in PHP, and then on to AA, AB, AC, etc中得到部分回答

Bijective以26为基础的计数可用于许多电子表格程序(例如LibreOffice Calc,Lotus-123,VisiCalc(我认为),ProCalc 3D等)中使用的方案中的列ID。 >

以下是R pseudocode

(我还不[[尚未包括依赖项的“原始” R代码)用于一种解决方案。返回值是一个整数向量(little endian),其元素在概念上映射到用于表示双射数的任意符号:bijective.numeral <- function(n, symbols=26L) { if (!is_among.contiguous.integers(n)) return (NULL) if (n < 0) return(iNA) if (n == 0) return(integer()) intermediate <- pseudo.log(n, symbols) %|% integer # PREALLOCATE A VECTOR LONG ENOUGH FOR THE RESULT m <- 0L while (n) { m <- 1L + m intermediate[[m]] <- 1:symbols %[mod% n n <- n %|% pred %/% symbols } intermediate[1:m] } LETTERS[16384 %|% bijective.numeral] %|% rev %|% `%//%` # [1] "XFD"
尽管此问题已经在StackOverflow上获得了部分答案,但是这些答案与具有正确的过程/概念名称(双射(基数-k)计数)的问题没有关联...
numbers symbols enumeration representation bijection
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.