问题标签 [catalan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
127 浏览

binary-tree - 二叉树的数量

n个节点可以形成多少个不同的二叉树和二叉搜索树?请注意:1)我要求二叉树而不是完整的二叉树(在这种情况下,答案是加泰罗尼亚语(n))?2)如果再次出现 BST,请包括所有情况(包括线性链)

我认为(期望)Ans1 = Ans 2 * factorial (n),因为每个结构只需要按照 BST 排序的单个键排列

0 投票
3 回答
5097 浏览

python - Calculating Catalan Numbers

I am trying to use this code to calculate the Catalan Number in Python, but it just does not work. How can I fix it?

Here is the code I have:

0 投票
1 回答
506 浏览

python - 有记忆与无记忆的递归

我在学校做作业,用递归计算加泰罗尼亚语数:第一次没有记忆

第二个:

最奇怪的事情发生在我身上:记忆需要两倍的时间!什么时候应该反过来!

有人可以向我解释一下吗?

0 投票
1 回答
1109 浏览

algorithm - 计算给布尔表达式加括号的方法

计算给布尔表达式加括号的方法的数量。例如,一个布尔表达式我的意思是这样的,1^0|0|1,对于运算符,它可以是 ^、& 或 |。

做了一些参考和计算,似乎方式的数量总是(2n)!/((n + 1)!n!),其中n是运算符的数量。如果有人知道为什么方法的数量总是(2n)!/((n + 1)!n!),感谢分享这些见解。

这是一个示例,说明我如何表示不同的括号方式,例如,两种不同的括号方式都会导致 False。

1^((0|0)|1) 1^(0|(0|1))

提前谢谢, 林

0 投票
1 回答
530 浏览

python - 使用记忆计算加泰罗尼亚数字

我正在尝试使用 memoization 来计算加泰罗尼亚语数字,但它似乎不起作用,我需要改变什么?

谢谢你!

0 投票
1 回答
1594 浏览

python - 用记忆计算加泰罗尼亚语数

我正在尝试使用 memoization 来计算加泰罗尼亚语数字,但它似乎不起作用,我需要更改什么?

0 投票
2 回答
778 浏览

java - 加泰罗尼亚数递归到记忆

我被要求编写一个递归函数,该函数将计算沿具有 n × n 方格的网格边缘的单调格子路径的加泰罗尼亚数,这些格子路径不会超过对角线(图片

我不允许用于-循环,只有递归调用......这就是我所做的:

我不知道这段代码是否最好,但它可以工作......我想将此函数转换为 Memoized 函数。但我不明白它如何以及为什么它会使功能更高效。我理解为什么记忆中的斐波那契更有效,但是在这里我总是必须到达路径的末尾然后返回 1 或 0 那么如果我将 1 / 0 存储在一个数组中有什么关系呢?

感谢您的任何帮助

0 投票
1 回答
2234 浏览

algorithm - 正确排列括号的方法数

这个问题我想了很久:

正确*排列 2*n 括号的方法有多少。
*正确排列的括号序列在其末尾具有相同数量的开括号和闭括号,并且开括号的数量大于或等于整个序列中的闭括号。

例如,对于n=3,有5方法:((())), ()(()), ()()(), (())(), (()())

我一直在考虑将嵌套括号表示为树,但没有走多远。

0 投票
1 回答
162 浏览

numbers - 计算以素数为模的大加泰罗尼亚数

有谁知道一种快速算法,用于计算一个大加泰罗尼亚数模素数(即 1.000.000.007),输入值约为 500.000

已经花了相当长的时间,但我无法修改普通公式以处理这么高的数字,并且动态算法花费的时间太长。

我会非常感谢任何帮助:)

0 投票
2 回答
503 浏览

haskell - 需要从列表中生成可能的树

我想从一个 int 列表中生成所有可能的树,[Int] -> [T]但我只生成一棵树。

像这些加泰罗尼亚数字。如果我的列表大小是 3,我想生成 5 棵可能的树,如果是 4 - 14 棵可能的树。

代码:

例如:toT [1..3]

输出:N (L 1) (N (L 2) (L 3))N (N (L 1) (L 2)) (L 3)

现在我确实喜欢这样

我怎样才能做到这一点 ?在递归中我将发送相同的列表但长度将下降我再次发送 [1,2,3] 大小 3 我发送 [1,2,3] 长度 2