由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 攒个人品,share一道有意思的题。
相关主题
一道G家onsite题any idea?
也问一个median的问题问个关于二分图的算法
Print out all elements in a sorted matrix给个算法题
问个矩阵的算法题L家悲剧,发面筋,顺求分析原因
狗家 onsite 求blessfacebook 一面
这题怎么做?facebook的buffet puzzle
Amazon interview question.(4)求facebook puzzle的测试文件
请教一道电面算法题facebook HR电面让作puzzle,有谁有类似经验吗?
相关话题的讨论汇总
话题: matching话题: 随机话题: regular话题: 矩阵话题: 生成
进入JobHunting版参与讨论
1 (共1页)
b*******d
发帖数: 750
1
今天刚遇到的。
写一个函数(getMatrix),给一个数N,生成一个随机的valid的NxN矩阵。valid是指
,矩阵上的每个cell也是一个数,但必须是从1到N的一个数。行列皆不能有重复的数。
每次call这个函数,返回的matrix都是独立随机。
完成这个函数后,follow up:反过来,如果得到这样一个matrix后,中间挖掉几个
cell,让其成空,剩下的是个sudoko puzzle,让人来猜。你能否定义一个difficulty
,来衡量你生成的puzzle有多难。难度需要与人们平均做出来的时间正相关。
f*****e
发帖数: 2992
2
(N-1) regular bipartite matching,node i连接另一半里除i之外的nodes,随机
产生一个matching(i,j);然后去掉(j,i)形成(N-2)regular bipartite matching,再随
机产生一个matching,以此类推,这样可以产生随机矩阵。
然后挖掉方块后,剩余行和列元素的重合程度,(行-方块)交(列-方块)和方块大小决定
difficulty。

difficulty

【在 b*******d 的大作中提到】
: 今天刚遇到的。
: 写一个函数(getMatrix),给一个数N,生成一个随机的valid的NxN矩阵。valid是指
: ,矩阵上的每个cell也是一个数,但必须是从1到N的一个数。行列皆不能有重复的数。
: 每次call这个函数,返回的matrix都是独立随机。
: 完成这个函数后,follow up:反过来,如果得到这样一个matrix后,中间挖掉几个
: cell,让其成空,剩下的是个sudoko puzzle,让人来猜。你能否定义一个difficulty
: ,来衡量你生成的puzzle有多难。难度需要与人们平均做出来的时间正相关。

b*******d
发帖数: 750
3

what if when you get (N-k) matching done, for the rest of the problem there
is actually no solution given your previous (N-k) matching? it is very
possible, how do you continue trying?

【在 f*****e 的大作中提到】
: (N-1) regular bipartite matching,node i连接另一半里除i之外的nodes,随机
: 产生一个matching(i,j);然后去掉(j,i)形成(N-2)regular bipartite matching,再随
: 机产生一个matching,以此类推,这样可以产生随机矩阵。
: 然后挖掉方块后,剩余行和列元素的重合程度,(行-方块)交(列-方块)和方块大小决定
: difficulty。
:
: difficulty

p*****2
发帖数: 21240
4
这是哪家的题呀?
a*******y
发帖数: 1040
5
你这个一共才1-N的数,矩阵有N^2个数, 为什么不重复?
p*****2
发帖数: 21240
6

行列不重复。

【在 a*******y 的大作中提到】
: 你这个一共才1-N的数,矩阵有N^2个数, 为什么不重复?
f*****e
发帖数: 2992
7
表述有点bug,sorry。
只要是k-regular的就会有perfect matching,一开始是(n-1)regular的,记为图1,后
来是(n-2),(n-3),...,1 regular的。只要保持图是k-regular的就有perfect matching

以4个点为例:
1 (2,3,4)
2 (1,3,4)
3 (1,2,4)
4 (1,2,3)
找到一个matching (i,j)=(1,2) (2,1) (3,4) (4,3),然后在图1中删掉(j,i)得到
(j不能再和前面path里的点相连,也不能和自身相连,所以要删掉前面path里的点)
1 (3,4)
2 (3,4)
3 (1,2)
4 (1,2)
再找到一个matching (i,j)=(1,3) (2,4) (3,1) (4,2),然后在图1中删掉前面path中
出现的点得到
matching:
1 2
2 1
3 4
4 3
然后把三个matching串在一起得到:
1-2-4-3
2-1-3-4
3-4-2-1
4-3-1-2
每行都是一个path。每一列到下一列的matching都是随机产生的。
也可以不用随机生成matching,直接在源头生成1-N的random shuffle就行了。
当然可能有的configuration的概率就为0。
f*****e
发帖数: 2992
8
可能我想的太复杂了,还有一个简单办法,先生成一个矩阵
1 2 ...N-1 N
2 3 ... N 1
3 4 ... 1 2
. .
. .
N 1 ... N-2 N-1
然后对行和列做random permutation。

matching

【在 f*****e 的大作中提到】
: 表述有点bug,sorry。
: 只要是k-regular的就会有perfect matching,一开始是(n-1)regular的,记为图1,后
: 来是(n-2),(n-3),...,1 regular的。只要保持图是k-regular的就有perfect matching
: 。
: 以4个点为例:
: 1 (2,3,4)
: 2 (1,3,4)
: 3 (1,2,4)
: 4 (1,2,3)
: 找到一个matching (i,j)=(1,2) (2,1) (3,4) (4,3),然后在图1中删掉(j,i)得到

m*****k
发帖数: 731
9
NB!

【在 f*****e 的大作中提到】
: 可能我想的太复杂了,还有一个简单办法,先生成一个矩阵
: 1 2 ...N-1 N
: 2 3 ... N 1
: 3 4 ... 1 2
: . .
: . .
: N 1 ... N-2 N-1
: 然后对行和列做random permutation。
:
: matching

b*******d
发帖数: 750
10

~~~~~~
虽然不知道能否cover所有的解,还是觉得很不错。赞一个。

【在 f*****e 的大作中提到】
: 可能我想的太复杂了,还有一个简单办法,先生成一个矩阵
: 1 2 ...N-1 N
: 2 3 ... N 1
: 3 4 ... 1 2
: . .
: . .
: N 1 ... N-2 N-1
: 然后对行和列做random permutation。
:
: matching

1 (共1页)
进入JobHunting版参与讨论
相关主题
facebook HR电面让作puzzle,有谁有类似经验吗?狗家 onsite 求bless
facebook面试大概是个什么流程?这题怎么做?
报一个facebook的offer,晚点补上面经Amazon interview question.(4)
攒个rp吧,发个groupon面经请教一道电面算法题
一道G家onsite题any idea?
也问一个median的问题问个关于二分图的算法
Print out all elements in a sorted matrix给个算法题
问个矩阵的算法题L家悲剧,发面筋,顺求分析原因
相关话题的讨论汇总
话题: matching话题: 随机话题: regular话题: 矩阵话题: 生成