小编le_*_*e_m的帖子

如何在JavaScript中查找集合的所有子集?

我需要获取数组的所有可能子集.

说我有这个:

[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我怎么得到这个?

[], [1], [2], [1, 2], [2, 3], [1, 3], [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我对所有子集感兴趣.有关特定长度的子集,请参阅以下问题:

  • 大小为n的子集找到:1,2
  • 查找大小> 1:1的子集

javascript subset powerset

29
推荐指数
6
解决办法
1万
查看次数

如何防止PHP命名空间冲突(预捆绑包)

假设我们有一个PHP项目,其依赖项AB各取决于PHP库X,但是在不同的版本中.

通常,可以使用PHP依赖项管理器(如composer)来解决此冲突,方法是将X包含在与AB兼容的版本中,或者如果无法解决冲突则显示错误.

现在,许多PHP应用程序允许用户只需上传预先捆绑的包并将其提取到特定的插件目录即可安装插件.

如果AB是这样的预捆绑插件并且两者都带有他们自己的库X版本,我们可能会遇到问题,因为没有依赖管理器可用于为我们选择兼容的X或在没有的情况下显示错误.

为了防止由于PHP无法将库X以不同版本加载两次到同一名称空间而导致的任何此类冲突,我们可以将AXBX放入不同的名称空间(这可能很难自动完成我们需要一个PHP解析器...).

我的问题是:

  • 你会如何解决这个问题?你能推荐这种方法还是有更好的解决方案?

php conflict namespaces version composer-php

6
推荐指数
1
解决办法
1047
查看次数

正则表达式:匹配DNA序列的排列

如何制作正则表达式来评估以下字符串?

TGATGCCGTCCCCTCAACTTGAGTGCTCCTAATGCGTTGC

并提取模式CTCCT.

模式必须是3 C和2 T的任何顺序.

我试过/ [C | T] {5} /但它与CCCCT和TCCCC相匹配

提前致谢.

javascript regex

5
推荐指数
1
解决办法
523
查看次数

大十进制整数的位数

给定一个大的十进制整数,如何计算位长度,即其二进制表示的位数?

\n\n

例子: bitlength("590295810358705712624") == 70

\n\n

算术表达式为:bitlength = \xe2\x8c\x8alog\xe2\x82\x82(n)\xe2\x8c\x8b + 1

\n\n

对于小整数,此表达式可以转换为标准库调用。但是对于具有任意位数的大整数呢?

\n\n

log\xe2\x82\x82我们可以从一位或两位前导数字计算出非常接近的估计值:

\n\n
log\xe2\x82\x82(8192) \xe2\x89\xa5 log\xe2\x82\x82(8100) = log\xe2\x82\x82(81) + log\xe2\x82\x82(10) * 2 = 12.98...\n
Run Code Online (Sandbox Code Playgroud)\n\n

将其代入上面的算术表达式中,我们得到了一个非常好的位长度下界。但在某些情况下,我们必须检查更多数字,可能直到最不重要的数字,才能得到准确的结果:

\n\n
bitlength("1125899906842623") == 50\nbitlength("1125899906842624") == 51\n
Run Code Online (Sandbox Code Playgroud)\n\n

关于如何在所有情况下准确有效地计算位长度有什么建议吗?

\n

algorithm logarithm biginteger bit

5
推荐指数
1
解决办法
1454
查看次数

Array.push与Array.unshift的性能

我正在阅读关于数组操作的运行时复杂性并了解到......

  • ECMAScript规范没有规定特定的运行时复杂性,因此它取决于具体的实现/ JavaScript引擎/运行时行为[1] [2].
  • Array.push()运行在恒定Array.unshift()直线通过像数据结构的哈希表来实现稀疏数组时间[3] .

现在,我在想是否pushunshift对相同的恒定分别线性时间复杂度密集阵列.Firefox/Spidermonkey的实验结果证实:

数组推送与非移位性能

现在我的问题:

  • 是否有官方文档或参考资料确认观察到的Firefox/Spidermonkey和Chrome/Node/V8的运行时性能?
  • 为什么unshift没有用类似的常量运行时实现push(例如维护索引偏移;类似于perl数组)?

javascript arrays performance time-complexity

5
推荐指数
1
解决办法
4045
查看次数

为什么Infinity×0 = NaN?

IEEE 754将1/0的结果指定为∞(无穷大).

但是,IEEE 754然后将0×∞的结果指定为NaN.

这感觉反直觉:为什么0×∞不是0?

  1. 我们可以认为1/0 =∞作为1/z的极限,因为z趋于零

  2. 我们可以认为0×∞= 0作为0×z的极限,因为z倾向于∞.

为什么IEEE标准遵循直觉1.而不是2.?

floating-point numbers nan infinity ieee-754

1
推荐指数
1
解决办法
1370
查看次数

从字符串中删除标点符号和空格

该函数compress()将接受一个句子并返回一个删除了所有空格和标点符号的字符串。
该函数必须调用isWhiteSpace()isPunct()

我已经完成了要调用的函数,但我不知道我的 js 代码中缺少什么来使其调用函数。

function compress(sent) {
    var punc = "; : . , ? ! - '' "" () {}";
    var space = " ";
    if (punc.test(param)) {
        return true
    } else {
        return false
    }
    if (space.test(param)) {
        return true
    } else {
        return false
    }
    isWhiteSpace(x);
    isPunct(x);
}
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
2889
查看次数

测试一个大整数是否为2的幂

给定一个整数(以二进制形式存储),如何快速测试它是否为2的幂,即对于整数指数k等于2?

一个简单但相当慢的方法是连续除以2直到数字变为2或者存在非零余数.不幸的是,我们需要执行尽可能多的分区,因为我们的号码中有数字.

对于小整数,有许多解决方案,包括位计数等.我对具有任意位数的整数的快速解决方案感兴趣.例如,我们可以通过一些快速整数除以2或其他欺骗加速上述方法吗?

algorithm biginteger

0
推荐指数
1
解决办法
553
查看次数

JavaScript等同于PHP的chr()函数

如何将以下代码从PHP转换为JavaScript?

$str = '';
for ($i = 0; $i < 256; $i++) {
    $str .= chr($i);
}
Run Code Online (Sandbox Code Playgroud)

我知道String.fromCharCode(n)JavaScript中的代码类似于chr(n)PHP中的代码,但是当n大于127时,它们似乎返回不同的字符。

javascript php character-encoding

-2
推荐指数
1
解决办法
1382
查看次数