Redian新闻
>
现在lowe's有forever and ever hydrangea,号称从春天开到秋天
avatar
现在lowe's有forever and ever hydrangea,号称从春天开到秋天# gardening - 拈花惹草
t*y
1
现在kohls 4.5qt classic plus 140,好像价格还不错,很动心,但又怕买回来接灰。
家里已经有一个面包机了,和面基本就用他了,还有一个food processor,基本用来打
肉馅,能想到的就是用standard mixer来做蛋糕,还能有什么别的用处吗?
avatar
c*e
2
有啥好方法么?我被问到了,不过最后面试官说大致正确。
avatar
w*e
3
不过不知道为什么,状态看起来都不太好,我问里面的店员,说因为剩下的不多了,所
以就随便放在太阳下面晒伤了(也因此能和lowe's讨价还价。。。)
大盆的24.98一盆,还价到10刀一盆,买了两盆heaven blue
小盆的14.98一盆,还价到7.5刀一盆,也买了两盆
总算能让面向西北的前门那里多点颜色了
avatar
G*g
4
我刚查了一下Specs,好像只有275瓦,功率不高,最好325瓦以上吧?

【在 t****y 的大作中提到】
: 现在kohls 4.5qt classic plus 140,好像价格还不错,很动心,但又怕买回来接灰。
: 家里已经有一个面包机了,和面基本就用他了,还有一个food processor,基本用来打
: 肉馅,能想到的就是用standard mixer来做蛋糕,还能有什么别的用处吗?

avatar
b*c
5
it is very big, hoho, usually we only need C(m,n) mod a very large prime No.
avatar
y*2
6
thanks for sharing. Congratulations for finding them.
I will check next time i am visiting lowes..
avatar
s*y
7
以后可以加个attachment压面条
4.5主要是小,广大美国用户觉得不方便吧,功率来说那个大小够用了,那个机器挺皮
实的

【在 G******g 的大作中提到】
: 我刚查了一下Specs,好像只有275瓦,功率不高,最好325瓦以上吧?
avatar
c*e
8
啥意思?
他要的是计算比如C(13,5)=1287

No.

【在 b*****c 的大作中提到】
: it is very big, hoho, usually we only need C(m,n) mod a very large prime No.
avatar
G*g
9
我刚从BestBuy回来,从尺寸上看不小,和5的也差不多少。

【在 s*y 的大作中提到】
: 以后可以加个attachment压面条
: 4.5主要是小,广大美国用户觉得不方便吧,功率来说那个大小够用了,那个机器挺皮
: 实的

avatar
g*e
10
不是有公式吗?还能比公式更快?
avatar
s*y
11
嗯,costco大概卖6 cup以上的。那个功率可能体现在绞肉馅吧,或者和硬面团。我主
要用它做稀面团,甜点那种,硬面自己上手
avatar
c*e
12
你是说m!(n-m)!/n!?这个面试官告诉你的。

【在 g*********e 的大作中提到】
: 不是有公式吗?还能比公式更快?
avatar
S*u
13
买。
和的面好吃。花卷馒头包子面条各种点心,人手比较累,还不如机器的香。我老年纪大
了,越发觉得不像年轻时啥都不觉得累了。
哈哈
avatar
g*e
14

对啊。然后可以稍微减少点计算量。 C(m,n)=m*(m-1)*...*(m-n+1)/n!
一共2n次乘法。读书时候口算都是这么算的。

【在 c*****e 的大作中提到】
: 你是说m!(n-m)!/n!?这个面试官告诉你的。
avatar
s*c
15
可以做鱼丸,贡丸。
做蛋糕的话几块钱的手持的就够用了。

【在 t****y 的大作中提到】
: 现在kohls 4.5qt classic plus 140,好像价格还不错,很动心,但又怕买回来接灰。
: 家里已经有一个面包机了,和面基本就用他了,还有一个food processor,基本用来打
: 肉馅,能想到的就是用standard mixer来做蛋糕,还能有什么别的用处吗?

avatar
c*e
16
这么直接的话就不用问你了,n!很容易溢出的。

【在 g*********e 的大作中提到】
:
: 对啊。然后可以稍微减少点计算量。 C(m,n)=m*(m-1)*...*(m-n+1)/n!
: 一共2n次乘法。读书时候口算都是这么算的。

avatar
g*e
17

那你说说你的吧?

【在 c*****e 的大作中提到】
: 这么直接的话就不用问你了,n!很容易溢出的。
avatar
c*e
18
我想了个超级复杂的,分解质因数,然后在计算结果。
不知道有啥合理的么,他要越不可能溢出越好。

【在 g*********e 的大作中提到】
:
: 那你说说你的吧?

avatar
S*e
19
用(m-n+1)/n, (m-n)/(n-1) ... 这样乘起来应该就不会溢出了吧

【在 c*****e 的大作中提到】
: 这么直接的话就不用问你了,n!很容易溢出的。
avatar
g*e
20

你这个不行,每个结果可能是浮点数,丢失了最后的整数性质。

【在 S*****e 的大作中提到】
: 用(m-n+1)/n, (m-n)/(n-1) ... 这样乘起来应该就不会溢出了吧
avatar
c*e
21
这个方法我提过,结果说不行,因为你最后还可能要round,如果这可以的话,你一开
始不如直接转double就没有溢出担心了。

【在 S*****e 的大作中提到】
: 用(m-n+1)/n, (m-n)/(n-1) ... 这样乘起来应该就不会溢出了吧
avatar
k*y
22
c(M, N) =c(M-1, N) + c(M-1, N-1)
用递归

【在 c*****e 的大作中提到】
: 有啥好方法么?我被问到了,不过最后面试官说大致正确。
avatar
g*e
23

赞 递归+dp
O(n2)

【在 k*****y 的大作中提到】
: c(M, N) =c(M-1, N) + c(M-1, N-1)
: 用递归

avatar
c*e
24
good idea,
可惜一开始那个人就告诉我m!(n-m)!/n!,我就往里面套了。

【在 k*****y 的大作中提到】
: c(M, N) =c(M-1, N) + c(M-1, N-1)
: 用递归

avatar
c*t
25
Here is the best way to compute C(n, m),
O(m)
int combin(int n, int m)
{
int val = 1;
int i;
//every iteration is like to compute C(n ,i)
for (i = 1; i <= m; i++) {
val *= n - (i - 1);
val /= i;
}
return val;
}

【在 c*****e 的大作中提到】
: 有啥好方法么?我被问到了,不过最后面试官说大致正确。
avatar
g*e
26

你这个会导致浮点数的啊 而且陈法运算O(m)并不比加法的O(n2)快吧

【在 c*********t 的大作中提到】
: Here is the best way to compute C(n, m),
: O(m)
: int combin(int n, int m)
: {
: int val = 1;
: int i;
: //every iteration is like to compute C(n ,i)
: for (i = 1; i <= m; i++) {
: val *= n - (i - 1);
: val /= i;

avatar
c*t
27
你没有看懂我的注释。
C(n,1) = n/1
C(n, 2) = C(n, 1) * (n-1)/2
C(n, 3) = C(n, 2) * (n - 2) /3
,etc,......

【在 g*********e 的大作中提到】
:
: 你这个会导致浮点数的啊 而且陈法运算O(m)并不比加法的O(n2)快吧

avatar
c*e
28
looks better

【在 c*********t 的大作中提到】
: Here is the best way to compute C(n, m),
: O(m)
: int combin(int n, int m)
: {
: int val = 1;
: int i;
: //every iteration is like to compute C(n ,i)
: for (i = 1; i <= m; i++) {
: val *= n - (i - 1);
: val /= i;

avatar
c*p
29
#include
#include
int C(int m, int n)
{
int *A, *B;
int tmp;
int i, j, k;
if((m <=0 ) || (n <=0 ))
return -1;
if(n == 1)
return m;
if(n == m)
return 1;
if(m - n < n)
n = m - n;

A = malloc(n*sizeof(int)); // A = {m, m - 1, .... m - n + 1}
B = malloc((n-1)*sizeof(int)); // B = {2, 3, ... n}
for(i = 0; i{
A[i] = m - i;
B[i] = i + 2;
}
A[n-1] = m - n + 1;
//i = 0; j = 0;
for(i = 0; i < n - 1; i++)
{
if(B[i] != 1)
{
tmp = B[i]; // tmp must be a prime


// Divide B[i]...B[n-2] with tmp
// until none of them cant be divided any longer
// Whenever a division happens,
// find an element in A that can be divided.
// Such an element must be somewhere starting
// from A[k]
k = 0;
for(j = i; j < n - 1; j++)
{
if((B[j] == 1) || (B[j] % tmp))
continue;

while(!(B[j] % tmp))
{
B[j] /= tmp;
while(A[k] % tmp)
k++;
A[k] /= tmp;
}
}
}
}
// by now B[i] = 1 for i=0..n-2
// get the result by multiplying elements in A
tmp = 1;
for(i = 0; i < n; i++)
tmp *= A[i];
free(A);
free(B);
return tmp;
}
int main()
{
int m, n;
int tmp;
scanf("%d %d", &m, &n);
if(n>m)
{
tmp = m;
m = n;
n = tmp;
}
printf("C(%d,%d) = %d\n",m,n,C(m,n));
return 0;
}

【在 c*****e 的大作中提到】
: 有啥好方法么?我被问到了,不过最后面试官说大致正确。
avatar
c*p
30
这个好。。。

【在 c*********t 的大作中提到】
: Here is the best way to compute C(n, m),
: O(m)
: int combin(int n, int m)
: {
: int val = 1;
: int i;
: //every iteration is like to compute C(n ,i)
: for (i = 1; i <= m; i++) {
: val *= n - (i - 1);
: val /= i;

avatar
g*e
31

o soga

【在 c*****e 的大作中提到】
: looks better
avatar
x*3
32
这样做就保证了不会有浮点数的。

【在 g*********e 的大作中提到】
:
: o soga

avatar
r*t
33
是我白痴了么?组合数是 combination 对吧?是你标题和这公式都各自反了,还是问的是倒数,还是我脑子坏了?

【在 c*****e 的大作中提到】
: 你是说m!(n-m)!/n!?这个面试官告诉你的。
avatar
r*t
34
这个以前板上有贴过的,月经题了。

【在 c*****e 的大作中提到】
: 这个方法我提过,结果说不行,因为你最后还可能要round,如果这可以的话,你一开
: 始不如直接转double就没有溢出担心了。

avatar
a*a
35
mark~

【在 c*********t 的大作中提到】
: Here is the best way to compute C(n, m),
: O(m)
: int combin(int n, int m)
: {
: int val = 1;
: int i;
: //every iteration is like to compute C(n ,i)
: for (i = 1; i <= m; i++) {
: val *= n - (i - 1);
: val /= i;

avatar
r*t
36
in Python, for C(N,k) 这个是标准写法,至少 loop 到 min (k, N-k) 才对。
val = 1L
for j in xrange(min(k, N-k)):
val = (val * (N-j)) // (j+1) # j+1 because I started from 0
同时,对大组合数都应该用 gamma func 算才对。

【在 c*********t 的大作中提到】
: Here is the best way to compute C(n, m),
: O(m)
: int combin(int n, int m)
: {
: int val = 1;
: int i;
: //every iteration is like to compute C(n ,i)
: for (i = 1; i <= m; i++) {
: val *= n - (i - 1);
: val /= i;

avatar
r*t
37
这个 mod 大素数又该怎么做呢?

No.

【在 b*****c 的大作中提到】
: it is very big, hoho, usually we only need C(m,n) mod a very large prime No.
avatar
p*i
38
mod everywhere
like what is essential in cracking many of the interview street problems

【在 r****t 的大作中提到】
: 这个 mod 大素数又该怎么做呢?
:
: No.

avatar
r*t
39
got u. Thanks! 经验之谈好!
interview street 听说难,想等基础学好了再做。

【在 p*i 的大作中提到】
: mod everywhere
: like what is essential in cracking many of the interview street problems

avatar
c*e
40
想了一下,依旧有问题,可能提前溢出。
也就是答案在不溢出的情况下,你的计算过程中已经溢出了。

【在 c*********t 的大作中提到】
: 你没有看懂我的注释。
: C(n,1) = n/1
: C(n, 2) = C(n, 1) * (n-1)/2
: C(n, 3) = C(n, 2) * (n - 2) /3
: ,etc,......

avatar
t*i
41
增加一个步骤,a=min(n, m-n) 然后求C(m, a)

★ 发自iPhone App: ChineseWeb - 中文网站浏览器

【在 c*****e 的大作中提到】
: 想了一下,依旧有问题,可能提前溢出。
: 也就是答案在不溢出的情况下,你的计算过程中已经溢出了。

avatar
j*b
42
需要那么复杂么?我觉得还是dp就可以了啊
public static void main(String[] args) {
int n=600;
int m=3;
int c[][] = new int[n+1][m+1];
for(int i=0; i<=n; i++){
for(int j=0; j<=m; j++){
if(j==0)
c[i][j] = 1;
else if(i==j)
c[i][j] = 1;
}
}
for(int i=2; i<=n; i++){
for(int j=1; j<=m; j++){
c[i][j] = c[i-1][j] + c[i-1][j-1];
if(c[i][j]<0){
System.out.println("Overflow");
return;
}
}
}
System.out.println(c[n][m]);

}
avatar
c*e
43
这个似乎也会提前溢出。。。

【在 j****b 的大作中提到】
: 需要那么复杂么?我觉得还是dp就可以了啊
: public static void main(String[] args) {
: int n=600;
: int m=3;
: int c[][] = new int[n+1][m+1];
: for(int i=0; i<=n; i++){
: for(int j=0; j<=m; j++){
: if(j==0)
: c[i][j] = 1;
: else if(i==j)

avatar
c*p
44
我的那个不溢出。但是比这个慢。

【在 c*****e 的大作中提到】
: 想了一下,依旧有问题,可能提前溢出。
: 也就是答案在不溢出的情况下,你的计算过程中已经溢出了。

avatar
c*p
45
今天逛街的时候想了一下,可以这么改进:
每次运算的时候都是这样的形式:
old_result * k / j
如果 k % j == 0,那么 new_result = old_result * (k/j);
否则new_result = old_result / j * k;

【在 c*****e 的大作中提到】
: 想了一下,依旧有问题,可能提前溢出。
: 也就是答案在不溢出的情况下,你的计算过程中已经溢出了。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。