S*6
2 楼
【 以下文字转载自 Military 讨论区 】
发信人: Sherry1986 (折耳猫), 信区: Military
标 题: 昨天跟红脖老板聊中国的生育政策 被夸奖了
发信站: BBS 未名空间站 (Thu Nov 13 18:06:15 2014, 美东)
昨天跟老板聊天,聊到中国结婚的习俗和生育。他问我中国的结婚都是年轻人自己决定
吗?还是父母包办?我说现在都是自由恋爱,年轻人自己决定了。
他说,哦,好。那么生育呢?我说生育这方面国家就要管理了。譬如有某些特殊遗传类
疾病的人,国家是不鼓励其生育的,譬如智障(智商=<80,我记不清了,随口说的)、
艾滋病、精神病、麻风病等等。
他问,智商过低的也不准生育吗?我说,是的。
他问,要是夫妻俩智商确实很低,但是就是怀孕了呢?我说,估计政府会强制流产吧?
毕竟,人的生理特征明显地世代相传,因此,人的脑力品质(天才和天赋)也是如此。
那么社会应该对遗传有一个清醒的决定,即:避免智商过低和有遗传病的人群的过量繁
殖以及健康人群的不足繁殖。如果不加选择,允许低智商和有遗传病的人生存并且让他
们的增长水平超过了社会中的健康的人的话,社会将被劣质人类所充斥。
老板赞许的说,我们也需要这样的政策。我们的国家,hmmm,允许蠢人生育,也允许有
遗传病的人生育,这是很糟糕的。
发信人: Sherry1986 (折耳猫), 信区: Military
标 题: 昨天跟红脖老板聊中国的生育政策 被夸奖了
发信站: BBS 未名空间站 (Thu Nov 13 18:06:15 2014, 美东)
昨天跟老板聊天,聊到中国结婚的习俗和生育。他问我中国的结婚都是年轻人自己决定
吗?还是父母包办?我说现在都是自由恋爱,年轻人自己决定了。
他说,哦,好。那么生育呢?我说生育这方面国家就要管理了。譬如有某些特殊遗传类
疾病的人,国家是不鼓励其生育的,譬如智障(智商=<80,我记不清了,随口说的)、
艾滋病、精神病、麻风病等等。
他问,智商过低的也不准生育吗?我说,是的。
他问,要是夫妻俩智商确实很低,但是就是怀孕了呢?我说,估计政府会强制流产吧?
毕竟,人的生理特征明显地世代相传,因此,人的脑力品质(天才和天赋)也是如此。
那么社会应该对遗传有一个清醒的决定,即:避免智商过低和有遗传病的人群的过量繁
殖以及健康人群的不足繁殖。如果不加选择,允许低智商和有遗传病的人生存并且让他
们的增长水平超过了社会中的健康的人的话,社会将被劣质人类所充斥。
老板赞许的说,我们也需要这样的政策。我们的国家,hmmm,允许蠢人生育,也允许有
遗传病的人生育,这是很糟糕的。
b*u
3 楼
9个小球 1 -9放到 3个相同的盒子,每个放3个。
比如(123)(456)(789)
(124)(356)(789)
.....
不能用递归,最好用 next()的方法来解决。
大家有没有好方法。
比如(123)(456)(789)
(124)(356)(789)
.....
不能用递归,最好用 next()的方法来解决。
大家有没有好方法。
f*a
4 楼
这个月哪里还有奶粉deal吗?多谢!
a*h
5 楼
ticker是什么?谢谢
g*a
6 楼
【 以下文字转载自 shopping 讨论区 】
发信人: gogopanda (你好), 信区: shopping
标 题: 我想买一只小挂包 找不到合适的
发信站: BBS 未名空间站 (Wed Jun 22 00:11:10 2011, 美东)
不想像MESSENGER包那样太大的
最好能得下FEDEX的信封
再能交一瓶水就可以了
有什么样的推荐吗
谢谢 最好50左右 一百以内也行
发信人: gogopanda (你好), 信区: shopping
标 题: 我想买一只小挂包 找不到合适的
发信站: BBS 未名空间站 (Wed Jun 22 00:11:10 2011, 美东)
不想像MESSENGER包那样太大的
最好能得下FEDEX的信封
再能交一瓶水就可以了
有什么样的推荐吗
谢谢 最好50左右 一百以内也行
M*s
7 楼
你老板很直言啊,应该去中国玩玩儿,这样的人对促进中美交流有极大作用
m*8
9 楼
求几张cvs19.99的鱼漂吧。
s*1
11 楼
你这是胡说吧
b*n
12 楼
楼上正解,就是1-9的next permutation
b*u
15 楼
不是1-9 permutation.
3盒子是一样的,而且同一个盒子里也没有排列问题。这实际是一个组合问题。
3盒子是一样的,而且同一个盒子里也没有排列问题。这实际是一个组合问题。
t*u
16 楼
买多大的啊?几段啊?
如果是e家二段,target现在买两管送10gc
如果是e家二段,target现在买两管送10gc
b*n
18 楼
没想到更好的方法,感觉略复杂但是应该work:
思路跟next permutation是类似的,只是需要每三个数每三个数的进行考虑。
先考虑比较简单的情况,假设只有两个盒子,123456
1.保证每个盒子里面的数是递增的
2.next()的时候实际上要找下一个满足条件的更大的数,
找的规则是:
比如第一个个盒子是123,第二个盒子是456
从第一个盒子最后一个数开始找,能不能在第二个盒子里面找到比它大的最小的数,如
果找到了就swap,
比如现在这种情况就是先看3,在第二个盒子里面找比3大的最小的是4,交换过后就是
124356,然后继续可以找到125346,126345
这个时候最后一个数就找不到了,找到数第二个数,需要做的是找到比2大的最小的两
个数34,所以下一个是134256,继续可以找到135246,136245,145236,146235,
156234
这个时候最后两个数56都找不到了,用同样的方法处理第倒数第三个数,依次类推。
这个方法可以扩展到任意个盒子。
【在 b****u 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 不是1-9 permutation.
: 3盒子是一样的,而且同一个盒子里也没有排列问题。这实际是一个组合问题。
思路跟next permutation是类似的,只是需要每三个数每三个数的进行考虑。
先考虑比较简单的情况,假设只有两个盒子,123456
1.保证每个盒子里面的数是递增的
2.next()的时候实际上要找下一个满足条件的更大的数,
找的规则是:
比如第一个个盒子是123,第二个盒子是456
从第一个盒子最后一个数开始找,能不能在第二个盒子里面找到比它大的最小的数,如
果找到了就swap,
比如现在这种情况就是先看3,在第二个盒子里面找比3大的最小的是4,交换过后就是
124356,然后继续可以找到125346,126345
这个时候最后一个数就找不到了,找到数第二个数,需要做的是找到比2大的最小的两
个数34,所以下一个是134256,继续可以找到135246,136245,145236,146235,
156234
这个时候最后两个数56都找不到了,用同样的方法处理第倒数第三个数,依次类推。
这个方法可以扩展到任意个盒子。
【在 b****u 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 不是1-9 permutation.
: 3盒子是一样的,而且同一个盒子里也没有排列问题。这实际是一个组合问题。
l*s
21 楼
好像BFS + Queue
共1680个解。
private static IEnumerable ThreeBuckets(){
Queue queue = new Queue();
for (int[,] tmp = new int[3, 3] { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };
tmp[2, 0] == 0; tmp = queue.Peek()[2, 0] != 0 ? queue.Peek() : queue.Dequeue
())
for (int i = 1; i < 10; i++)
if (!(i == tmp[0, 0] || i == tmp[0, 1] || i == tmp[0, 2] || i == tmp[1, 0] |
| i == tmp[1, 1] || i == tmp[1, 2]))
for (int j = i + 1; j < 10; j++)
if (!(j == tmp[0, 0] || j == tmp[0, 1] || j == tmp[0, 2] || j == tmp[1, 0] |
| j == tmp[1, 1] || j == tmp[1, 2]))
for (int k = j + 1; k < 10; k++)
if (!(k == tmp[0, 0] || k == tmp[0, 1] || k == tmp[0, 2] || k == tmp[1, 0] |
| k == tmp[1, 1] || k == tmp[1, 2]))
queue.Enqueue(tmp[0, 0] == 0 ? new int[3, 3] { { i, j, k }, { 0, 0, 0 }, { 0
, 0, 0 } } : tmp[0, 0] != 0 && tmp[1, 0] == 0 ? new int[3, 3] { { tmp[0, 0],
tmp[0, 1], tmp[0, 2] }, { i, j, k }, { 0, 0, 0 } } : new int[3, 3] { { tmp[
0, 0], tmp[0, 1], tmp[0, 2] }, { tmp[1, 0], tmp[1, 1], tmp[1, 2] }, { i, j,
k } });
while (queue.Count != 0) yield return queue.Dequeue();
}
共1680个解。
private static IEnumerable
Queue
for (int[,] tmp = new int[3, 3] { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };
tmp[2, 0] == 0; tmp = queue.Peek()[2, 0] != 0 ? queue.Peek() : queue.Dequeue
())
for (int i = 1; i < 10; i++)
if (!(i == tmp[0, 0] || i == tmp[0, 1] || i == tmp[0, 2] || i == tmp[1, 0] |
| i == tmp[1, 1] || i == tmp[1, 2]))
for (int j = i + 1; j < 10; j++)
if (!(j == tmp[0, 0] || j == tmp[0, 1] || j == tmp[0, 2] || j == tmp[1, 0] |
| j == tmp[1, 1] || j == tmp[1, 2]))
for (int k = j + 1; k < 10; k++)
if (!(k == tmp[0, 0] || k == tmp[0, 1] || k == tmp[0, 2] || k == tmp[1, 0] |
| k == tmp[1, 1] || k == tmp[1, 2]))
queue.Enqueue(tmp[0, 0] == 0 ? new int[3, 3] { { i, j, k }, { 0, 0, 0 }, { 0
, 0, 0 } } : tmp[0, 0] != 0 && tmp[1, 0] == 0 ? new int[3, 3] { { tmp[0, 0],
tmp[0, 1], tmp[0, 2] }, { i, j, k }, { 0, 0, 0 } } : new int[3, 3] { { tmp[
0, 0], tmp[0, 1], tmp[0, 2] }, { tmp[1, 0], tmp[1, 1], tmp[1, 2] }, { i, j,
k } });
while (queue.Count != 0) yield return queue.Dequeue();
}
t*m
24 楼
我来提供个思路,求大家指正,如果看的觉得还不错,能顺便求个new grad内推:-)?
***************************这是分割线*********************************
先看一个简单的例子,比如把编号为1,2,3,4的四个球放到两个相同的盒子里面(9个球
放到三个相同盒子里类似思路):
Section A:
需要注意的是盒子是相同的,而且在同一个盒子内的球不排序。
这就说明其实
【1,2】【3,4】
【3,4】【1,2】
【4,3】【2,1】
【3,4】【2,1】
etc.的表达方法虽然不一样,但是分组方法其实是一样的
如何在写code的时候避免表达不同但是分组方法其实相同的问题呢,
让我们用【1,2】【3,4】这种数组的表达方法来represent这一种分组的方法
在【1,2】【3,4】这个表达方式的例子里,大家可以看到的规律是:
(1)每一个数组内部是排序的,即【1,2】或者【3,4】,不可能出现【2,1】或者
【4,3】
(2)数组之间以首元素排序,由于【1,2】中的1比【3,4】中的3小,所以【1,2】
排在【3,4】之前
由此有了分组的unique的表达方法,这样可以避免重复
Section B:
接下来看如何把不同的分组方法一个个找出来:
在这个例子里,我们要做的事情就是把1,2,3,4这四个数放到【X,X】【X,X】的数组里
,并且符合A中所提的分组方法的表达规律
假设这个【X,X】【X,X】叫Array吧
现在往第一个数组的第一个位置(Array[0][0])填数字,需要符合A中所提的规律,那
么你能填什么呢?
填4?明显不符合A中所提的两条规律,因为4是最大的数字,Array[0][0]的位置填了4
,那么Array[0][1] 和Array[1][0]就没数填了
填3?好像也不行,因为我们知道Array[0][0] ][0] 如此我们就知道Array[0][0]的位置只能填1,所以我们把【X,X】【X,X】变成了【1,,
X】【X,X】
接下来再看Array[1][0],既然Array[0][0]肯定是1了,那么Array[1][0]需要比1大
,而且Array[1][0]需要小于Array[1][1],所以Array[1][0]的范围是2-3
于是我们又有了两种可能,把【1,X】【X,X】变成了
【1,X】【2,X】或者【1,X】【3,X】
如此反复,每一步都可能产生很多种可能,我们把每一种可能都记下来放到一个叫cur_
level的数组里,然后再用cur_level里的可能去推下一步的各种可能,最终就能得到结果
在上面的这个例子里,各种可能的示意图是这样的
1--------- 【X,X】【X,X】
|
|
2---------【1,X】【X,X】
|
--------------
| |
| |
3--【1,X】【2,X】 【1,X】【3,X】
| |
-------------- ------------
| | |
| | |
【1,3】【2,4】, 【1,4】【2,3】 , 【1,2】【3,4】
一共三种方法
C(4,2)*C(2,2)/C(2,1)=3
***************************这是分割线*********************************
先看一个简单的例子,比如把编号为1,2,3,4的四个球放到两个相同的盒子里面(9个球
放到三个相同盒子里类似思路):
Section A:
需要注意的是盒子是相同的,而且在同一个盒子内的球不排序。
这就说明其实
【1,2】【3,4】
【3,4】【1,2】
【4,3】【2,1】
【3,4】【2,1】
etc.的表达方法虽然不一样,但是分组方法其实是一样的
如何在写code的时候避免表达不同但是分组方法其实相同的问题呢,
让我们用【1,2】【3,4】这种数组的表达方法来represent这一种分组的方法
在【1,2】【3,4】这个表达方式的例子里,大家可以看到的规律是:
(1)每一个数组内部是排序的,即【1,2】或者【3,4】,不可能出现【2,1】或者
【4,3】
(2)数组之间以首元素排序,由于【1,2】中的1比【3,4】中的3小,所以【1,2】
排在【3,4】之前
由此有了分组的unique的表达方法,这样可以避免重复
Section B:
接下来看如何把不同的分组方法一个个找出来:
在这个例子里,我们要做的事情就是把1,2,3,4这四个数放到【X,X】【X,X】的数组里
,并且符合A中所提的分组方法的表达规律
假设这个【X,X】【X,X】叫Array吧
现在往第一个数组的第一个位置(Array[0][0])填数字,需要符合A中所提的规律,那
么你能填什么呢?
填4?明显不符合A中所提的两条规律,因为4是最大的数字,Array[0][0]的位置填了4
,那么Array[0][1] 和Array[1][0]就没数填了
填3?好像也不行,因为我们知道Array[0][0]
X】【X,X】
接下来再看Array[1][0],既然Array[0][0]肯定是1了,那么Array[1][0]需要比1大
,而且Array[1][0]需要小于Array[1][1],所以Array[1][0]的范围是2-3
于是我们又有了两种可能,把【1,X】【X,X】变成了
【1,X】【2,X】或者【1,X】【3,X】
如此反复,每一步都可能产生很多种可能,我们把每一种可能都记下来放到一个叫cur_
level的数组里,然后再用cur_level里的可能去推下一步的各种可能,最终就能得到结果
在上面的这个例子里,各种可能的示意图是这样的
1--------- 【X,X】【X,X】
|
|
2---------【1,X】【X,X】
|
--------------
| |
| |
3--【1,X】【2,X】 【1,X】【3,X】
| |
-------------- ------------
| | |
| | |
【1,3】【2,4】, 【1,4】【2,3】 , 【1,2】【3,4】
一共三种方法
C(4,2)*C(2,2)/C(2,1)=3
c*e
25 楼
我觉得你需要复习下概率了。是c(9,3)*c(6,3)*c(3,3)/p(3,3)
【在 l******s 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 好像BFS + Queue
: 共1680个解。
: private static IEnumerable ThreeBuckets(){
: Queue queue = new Queue();
: for (int[,] tmp = new int[3, 3] { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };
: tmp[2, 0] == 0; tmp = queue.Peek()[2, 0] != 0 ? queue.Peek() : queue.Dequeue
: ())
: for (int i = 1; i < 10; i++)
: if (!(i == tmp[0, 0] || i == tmp[0, 1] || i == tmp[0, 2] || i == tmp[1, 0] |
: | i == tmp[1, 1] || i == tmp[1, 2]))
【在 l******s 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 好像BFS + Queue
: 共1680个解。
: private static IEnumerable
: Queue
: for (int[,] tmp = new int[3, 3] { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } };
: tmp[2, 0] == 0; tmp = queue.Peek()[2, 0] != 0 ? queue.Peek() : queue.Dequeue
: ())
: for (int i = 1; i < 10; i++)
: if (!(i == tmp[0, 0] || i == tmp[0, 1] || i == tmp[0, 2] || i == tmp[1, 0] |
: | i == tmp[1, 1] || i == tmp[1, 2]))
i*o
26 楼
This is cool, the code is ugly:
#include
int
has3bits(unsigned c)
{
int n = 0;
while (c) {
n += (c&1);
c >>= 1;
if(n > 3) {
break;
}
}
return n == 3;
}
unsigned
highbit(unsigned c)
{
unsigned h = 0x100;
while (!(h & c) && h) {
h >>= 1;
}
return h;
}
int
c3_next(unsigned *c1, unsigned *c2)
{
unsigned c1_min = 0x100, c2_min;
int found = 0, found1 = 0;
while (!found) {
if (has3bits(*c1)) {
goto next_c2;
}
while (*c1 > c1_min) {
(*c1)--;
if (has3bits(*c1)) {
found1 = 1;
break;
}
}
if (!found1) {
goto out;
}
*c2 = (~(*c1)) & 0x1ff;
next_c2:
c2_min = highbit(*c2);
while (*c2 > c2_min) {
(*c2)--;
if (((*c2) & (*c1)) == 0 && has3bits(*c2)) {
found = 1;
break;
}
}
if (!found) {
(*c1)--;
if (has3bits(*c1)) {
*c2 = (~(*c1)) & 0x1ff;
} else {
found1 = 0;
}
}
}
out:
return found;
}
c3_print(unsigned c1, unsigned c2)
{
unsigned i, n;
n = c1;
for (i = 1; i <= 9; i++) {
if (n & (1<printf("%d", i);
}
}
printf(" ");
n = c2;
for (i = 1; i <= 9; i++) {
if (n & (1<printf("%d", i);
}
}
printf(" ");
n = ~(c1 | c2) & 0x1ff;
for (i = 1; i <= 9; i++) {
if (n & (1<printf("%d", i);
}
}
printf("n");
}
main()
{
unsigned c1, c2;
c1 = (0x7 << 6);
c2 = (~c1) & 0x1ff;
while (c3_next(&c1, &c2)) {
c3_print(c1, c2);
}
}
【在 b***e 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 这个其实就是C(8,2)*C(5,2)=280。next函数就是两个组合枚举的next函数按C(5,2)低
: 位(进位至)C(8,2)高位的结合。
t*m
27 楼
尼玛本来不想贴code,虽然很丑,还是发一个:
N = 9
NSQRT = 3
NSQRTI = 2
def combination(self):
# write your code here
# check
initial = [0 for i in range(N)]
cur_level = []
cur_level.append(initial)
next_level = []
for i in range(NSQRT):
for j in range(NSQRT):
for case in cur_level:
low, high = 0, 0
num_map = set()
for num in case:
num_map.add(num)
if i==0 and j==0:
low = 1
high = 1
elif i==0:
low = case[j*NSQRT-NSQRT] + 1
high = N-((NSQRTI-j)*NSQRT+NSQRTI)
else:
low = case[i+j*NSQRT-1] + 1
high = N-(NSQRTI-i)
for k in range(low, high+1):
if not k in num_map:
case[j*NSQRT+i] = k
next_level.append(case[:])
cur_level = next_level
next_level = []
return len(cur_level)
N = 9
NSQRT = 3
NSQRTI = 2
def combination(self):
# write your code here
# check
initial = [0 for i in range(N)]
cur_level = []
cur_level.append(initial)
next_level = []
for i in range(NSQRT):
for j in range(NSQRT):
for case in cur_level:
low, high = 0, 0
num_map = set()
for num in case:
num_map.add(num)
if i==0 and j==0:
low = 1
high = 1
elif i==0:
low = case[j*NSQRT-NSQRT] + 1
high = N-((NSQRTI-j)*NSQRT+NSQRTI)
else:
low = case[i+j*NSQRT-1] + 1
high = N-(NSQRTI-i)
for k in range(low, high+1):
if not k in num_map:
case[j*NSQRT+i] = k
next_level.append(case[:])
cur_level = next_level
next_level = []
return len(cur_level)
b*e
28 楼
太麻烦了。这样想:1一定要放在某个盒子里。从另外三个里挑一个和1放一起,C(3,1)
=3.
【在 t****m 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 我来提供个思路,求大家指正,如果看的觉得还不错,能顺便求个new grad内推:-)?
: ***************************这是分割线*********************************
: 先看一个简单的例子,比如把编号为1,2,3,4的四个球放到两个相同的盒子里面(9个球
: 放到三个相同盒子里类似思路):
: Section A:
: 需要注意的是盒子是相同的,而且在同一个盒子内的球不排序。
: 这就说明其实
: 【1,2】【3,4】
: 【3,4】【1,2】
: 【4,3】【2,1】
=3.
【在 t****m 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 我来提供个思路,求大家指正,如果看的觉得还不错,能顺便求个new grad内推:-)?
: ***************************这是分割线*********************************
: 先看一个简单的例子,比如把编号为1,2,3,4的四个球放到两个相同的盒子里面(9个球
: 放到三个相同盒子里类似思路):
: Section A:
: 需要注意的是盒子是相同的,而且在同一个盒子内的球不排序。
: 这就说明其实
: 【1,2】【3,4】
: 【3,4】【1,2】
: 【4,3】【2,1】
相关阅读
有aritzia的粉丝么?论坛虽说是个消遣的地方,还是要讲信用啊~新手关于假睫毛的好几个问题!!!Coach 100off300,不是自己的名下的,不能用?sasa上面最值得买的东西(mask/面霜)是什么?[合集] 烦死我了!!上来说说我的极品表妹GNC今天有2 for 20 Super Sale + free shipping +12% cashback我也想要coach100off 300, 谢谢啦终于找到适合自己的裸妆了~~~加种草最近sephora下的单(奔了根眉毛在第三页)请推荐concealer 和 带防晒的日霜是不是随便买个coach都比国内便宜?iherb的5刀code包子求香水推荐很生气-买的sk11面膜保质期Urban decay sale婚前准备~~~求推荐补水精华,补水面膜,补水眼霜……弱问美国哪能买到SLY的N3b coat啊~30% off Kohl's Nov 9-16 with Kohl's Card这个周四开始的sephora20% off,可以用code吗24,5岁的护肤品都哪些?