Redian新闻
>
父母B2延期后,提前回国的问题 (转载)
avatar
父母B2延期后,提前回国的问题 (转载)# EB23 - 劳工卡
n*e
1
Write a method to generate a random number between 1 and 7, given a method
that generates a random number between 1 and 5 (i.e., implement rand7()
using rand5()).
给出的解是:
public static int rand7() {
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 21) return (num % 7 + 1);
}
}
想问一下为什么这么做是对的?
如果这样写对吗?
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 7) return (num + 1);
}
或者
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 14) return (num % 7 + 1);
}
或者
while (true) {
int num = 4 * (rand5() - 1) + (rand5() - 1);
if (num < 14) return (num % 7 + 1);
}
多谢大牛指教!
avatar
p*n
2
【 以下文字转载自 Visa 讨论区 】
发信人: paomian (paomian), 信区: Visa
标 题: 父母B2延期后,提前回国的问题
发信站: BBS 未名空间站 (Sat Jul 2 13:52:34 2016, 美东)
我在父母B2签证6月份到期前,办了延期,USCIS已经收到了case,现在在等待批准。
因为家里临时有事情,想在没有拿到approval letter 前回国,这样对以后来美国有没
有影响? 会不会移民官认为提前出境,视为主动放弃申请,这样就把最近的1个月当成
了非法滞留?
谢谢!
avatar
z*e
3
可以
但是这样做效率就偏低
avatar
y*u
4
不会,但要保存好USCIS的回复。

【在 p*****n 的大作中提到】
: 【 以下文字转载自 Visa 讨论区 】
: 发信人: paomian (paomian), 信区: Visa
: 标 题: 父母B2延期后,提前回国的问题
: 发信站: BBS 未名空间站 (Sat Jul 2 13:52:34 2016, 美东)
: 我在父母B2签证6月份到期前,办了延期,USCIS已经收到了case,现在在等待批准。
: 因为家里临时有事情,想在没有拿到approval letter 前回国,这样对以后来美国有没
: 有影响? 会不会移民官认为提前出境,视为主动放弃申请,这样就把最近的1个月当成
: 了非法滞留?
: 谢谢!

avatar
a*e
5
int num = 5 * (rand5() - 1) + (rand5() - 1);
这一句生成0-24之间的整数且均匀分布。每个整数出现的概率都是相等的。
所以0-20这21个数出现的概率也是相等的。
取余数之后,每个余数0-6出现的概率也是相等的。 所以此算法是正确的。
效率问题:
这个算法循环一次就成功的概率为 21/25 = 84%。循环的次数服从几何分布。 平均复
杂度为25/21
你的第一种写法中,每次循环成功概率为7/25 = 14%。 平均复杂度为25/7。
所以cc150中的解法复杂度要好于你的解法。

【在 n****e 的大作中提到】
: Write a method to generate a random number between 1 and 7, given a method
: that generates a random number between 1 and 5 (i.e., implement rand7()
: using rand5()).
: 给出的解是:
: public static int rand7() {
: while (true) {
: int num = 5 * (rand5() - 1) + (rand5() - 1);
: if (num < 21) return (num % 7 + 1);
: }
: }

avatar
c*3
6
提前走没事,延期被拒才会回溯非法逗留期。
另外要保留收据(I-797C),以备下次入境询问的时候出示。

【在 p*****n 的大作中提到】
: 【 以下文字转载自 Visa 讨论区 】
: 发信人: paomian (paomian), 信区: Visa
: 标 题: 父母B2延期后,提前回国的问题
: 发信站: BBS 未名空间站 (Sat Jul 2 13:52:34 2016, 美东)
: 我在父母B2签证6月份到期前,办了延期,USCIS已经收到了case,现在在等待批准。
: 因为家里临时有事情,想在没有拿到approval letter 前回国,这样对以后来美国有没
: 有影响? 会不会移民官认为提前出境,视为主动放弃申请,这样就把最近的1个月当成
: 了非法滞留?
: 谢谢!

avatar
n*e
7
能讲讲为什么原来的做法是对的吗?
如果上面3中alternative都可以,那下面这个写法应该比解答的效率要高吧:
while (true) {
int num = 6 * (rand5() - 1) + (rand5() - 1);
if (num < 28) return (num % 7 + 1);
}

【在 z****e 的大作中提到】
: 可以
: 但是这样做效率就偏低

avatar
o*d
8
没关系。到时候还是会收到批准的,批准的延期有效期将是离境的那一天,而不是到你
当时申请的日期(比如六个月的延期)

【在 p*****n 的大作中提到】
: 【 以下文字转载自 Visa 讨论区 】
: 发信人: paomian (paomian), 信区: Visa
: 标 题: 父母B2延期后,提前回国的问题
: 发信站: BBS 未名空间站 (Sat Jul 2 13:52:34 2016, 美东)
: 我在父母B2签证6月份到期前,办了延期,USCIS已经收到了case,现在在等待批准。
: 因为家里临时有事情,想在没有拿到approval letter 前回国,这样对以后来美国有没
: 有影响? 会不会移民官认为提前出境,视为主动放弃申请,这样就把最近的1个月当成
: 了非法滞留?
: 谢谢!

avatar
n*e
9
多谢解释啊!
那下面这个写法应该比解答的效率要高吧:
while (true) {
int num = 6 * (rand5() - 1) + (rand5() - 1);
if (num < 28) return (num % 7 + 1);
}

【在 a******e 的大作中提到】
: int num = 5 * (rand5() - 1) + (rand5() - 1);
: 这一句生成0-24之间的整数且均匀分布。每个整数出现的概率都是相等的。
: 所以0-20这21个数出现的概率也是相等的。
: 取余数之后,每个余数0-6出现的概率也是相等的。 所以此算法是正确的。
: 效率问题:
: 这个算法循环一次就成功的概率为 21/25 = 84%。循环的次数服从几何分布。 平均复
: 杂度为25/21
: 你的第一种写法中,每次循环成功概率为7/25 = 14%。 平均复杂度为25/7。
: 所以cc150中的解法复杂度要好于你的解法。

avatar
P*f
10
previous post mentioned, this is not evenly distributed

【在 n****e 的大作中提到】
: 能讲讲为什么原来的做法是对的吗?
: 如果上面3中alternative都可以,那下面这个写法应该比解答的效率要高吧:
: while (true) {
: int num = 6 * (rand5() - 1) + (rand5() - 1);
: if (num < 28) return (num % 7 + 1);
: }

avatar
n*e
11
想通了,
5 * (rand5() - 1) + (rand5() - 1);
前面这个系数5是不能随便改的,因为是rand5,所以只有系数为5的时候所生成的书才
是随机的。
这种情况下21是最大的被7整除的数,所以解答是这么给的。
多谢指教!

【在 n****e 的大作中提到】
: 多谢解释啊!
: 那下面这个写法应该比解答的效率要高吧:
: while (true) {
: int num = 6 * (rand5() - 1) + (rand5() - 1);
: if (num < 28) return (num % 7 + 1);
: }

avatar
n*e
12
恩,是的,多谢!

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