脑子突然不好使了,请各位大佬帮我想想这个算法

lihongming:已知有一个长度为 26 的整型数组,分别代表 26 个字母的个数,问这些字母能组成多少种不同的字符串(取模 1000000007 )。

我本来觉得挺简单,不就是迭代吗?抬手就来

int calc(int[] nums) {
    int ret = 0;
    for (int i = 0; i < nums.length; i++) {
        if (nums[i] > 0) {
            nums[i]--;
            ret += calc(nums);
            ret %= 1000000007;
            nums[i]++;
        }
    }
    return ret > 0 ? ret : 1;
}

结果效率太差,不行。

我又想用数学的方法直接算,可脑子怎么也想不起该怎么算了,求大佬们指点。

xuanbg:2^32^26

lihongming:想起来了,应该是各数之和的阶乘除以各数的阶乘
(A + B + C + ...)! / (A! * B! * C! * ...)

在PHP中使用long int - php

我正在尝试此方法,但无法存储较大的价值$var = rand(100000000000000,999999999999999); echo $var; // prints a 9 digit value(largest possible) 如何获得期望值? 参考方案 PHP整数通常为32位。其他软件包提供了更高精度的整数:http://php.net/man…

有什麼單機的、能管理資源分配的任務調度庫/框架?

rix:能動態添加任務,任務之間有依賴關係,任務需要分配系統資源,如硬盤、帶寬、內存、CPU 等等。任務完成後會有臨時資源傳遞給下游任務。當所有下游任務使用完臨時資源後能自動釋放資源( reference count )。調度算法能合理分配資源,避免硬盤、帶寬、內存、CPU 超載等等。 任務僅限單機運行,不考慮分佈式場景。當然如果有分佈式的方案能適用於單機的…

一道算法题,请教一下

salamanderMH:问题 有砝码 1g,2g,3g...100g,组成 100g 的重量有几种方式? 这道题应该可以用动态规划做,但一下子没想出来(太渣了) 写了一个回溯的算法,但效率太差了: function counterweightWays(currentNum, allNum, leftWeight, tmpResult, result) { …

为什么我的按位运算不能在Java中与`int`一起使用? - java

我刚得到以下编译器错误:./package/path/FrameScreenPosition.java:80: incompatible types found : int required: boolean if (frame.getExtendedState() & Frame.MAXIMIZED_BOTH) { ^ “扩展状态”是各种不同状态的…

怎么撸三个数据类型的集合

ligiggy:基于 C#,需要建立一个数量大概在几百的,为<int,string,string>的集合,目前的想法有如下两种: Tuple<int,string,string>很好实现,但是可读性很差 采用面对对象的思想,建立三个对应属性,然后用数组将数据结合起来 想知道,还有没有其他更好的办法