Redian新闻
>
Re: 分析Obamacare对华人或中产的好处就像在一砣屎里找几颗未 (转载)
avatar
Re: 分析Obamacare对华人或中产的好处就像在一砣屎里找几颗未 (转载)# Joke - 肚皮舞运动
z*8
1
问个题目: 从1-n 中找出k, 使得 k=a^2 +b^2 (a b 为整数)
有好的算法吗?
avatar
P*n
2
用LA的律师,原本100块的,一听不在本地,要收380块。。。。
avatar
T*C
3
今天跑了两家Fry's,一家BestBuy都没有样机, 想试验一下操作和感觉,Nikon D3100
和canon T2i每家都有,看来丐帮还是少数派哦。
avatar
d*f
4
【 以下文字转载自 USANews 讨论区 】
发信人: lopt (好好学习天天向上), 信区: USANews
标 题: Re: 分析Obamacare对华人或中产的好处就像在一砣屎里找几颗未
发信站: BBS 未名空间站 (Sat Oct 5 21:55:31 2013, 美东)
你见过60岁的硅工吗?你想过这些人都去哪里了吗?
你的父母60岁了吧?他们没有任何大病慢性病?
avatar
p*2
5

a,b是啥东西呀?任意整数?a,b可以重复吗?

【在 z*********8 的大作中提到】
: 问个题目: 从1-n 中找出k, 使得 k=a^2 +b^2 (a b 为整数)
: 有好的算法吗?

avatar
l*n
6
please contact me. Our website www.ticketdiscard.com
avatar
T*r
7
试试local的相机店,比如san jose camera?

D3100

【在 T***C 的大作中提到】
: 今天跑了两家Fry's,一家BestBuy都没有样机, 想试验一下操作和感觉,Nikon D3100
: 和canon T2i每家都有,看来丐帮还是少数派哦。

avatar
d*f
8
让你们见识一下生物转马工的思维能力

【在 d********f 的大作中提到】
: 【 以下文字转载自 USANews 讨论区 】
: 发信人: lopt (好好学习天天向上), 信区: USANews
: 标 题: Re: 分析Obamacare对华人或中产的好处就像在一砣屎里找几颗未
: 发信站: BBS 未名空间站 (Sat Oct 5 21:55:31 2013, 美东)
: 你见过60岁的硅工吗?你想过这些人都去哪里了吗?
: 你的父母60岁了吧?他们没有任何大病慢性病?

avatar
z*8
9
a b 为 任意整数,可以重复。
avatar
P*n
10
self-help consulting ???
不是律师??

【在 l****n 的大作中提到】
: please contact me. Our website www.ticketdiscard.com
avatar
T*C
11
Winchester上那家?谢谢。明天去看看。
avatar
w*n
12
我也觉得Obamacare是一坨屎

【在 d********f 的大作中提到】
: 让你们见识一下生物转马工的思维能力
avatar
c*7
13
筛法,a,b从1到sqrt(n)算出所有可能的结果
avatar
c*n
14
跨州交易要额外交$280的sales tax
就是网上上买东西一样

【在 P****n 的大作中提到】
: 用LA的律师,原本100块的,一听不在本地,要收380块。。。。
avatar
z*8
15
时间复杂度 应该是 n^2?
avatar
P*n
16
老大。。。这个地方就在LA南边不远的地方,都在南加州。。。。

【在 c******n 的大作中提到】
: 跨州交易要额外交$280的sales tax
: 就是网上上买东西一样

avatar
z*8
17
public class Find_A_K
{
public static void findK(int n) {
List result = new ArrayList();
for (int k = 1; k <= n; k++)
{
for (int i = 1; i <= Math.sqrt(k); i++)
for (int j = 1; j <= Math.sqrt(k); j++) {
if ((i * i + j * j) == k)
{
if(!result.contains(k))
result.add(k);

}
}
}
for(int i = 0; i{
System.out.println(result.get(i));
}
}

这样子对吗? 时间复杂度 是 n^3 ?
avatar
l*n
18
No, we are not lawyer.

【在 P****n 的大作中提到】
: 老大。。。这个地方就在LA南边不远的地方,都在南加州。。。。
avatar
p*2
19

(defn find-k [n]
(let [s (int (Math/sqrt n))]
(distinct
(for [a (range 1 (inc s))
b (range a (inc s))
:let [c (+ (* a a) (* b b))]
:when (<= c n)]
c))))

【在 z*********8 的大作中提到】
: public class Find_A_K
: {
: public static void findK(int n) {
: List result = new ArrayList();
: for (int k = 1; k <= n; k++)
: {
: for (int i = 1; i <= Math.sqrt(k); i++)
: for (int j = 1; j <= Math.sqrt(k); j++) {
: if ((i * i + j * j) == k)
: {

avatar
c*n
20
哦那当然是因为不同县的sales tax不一样了

【在 P****n 的大作中提到】
: 老大。。。这个地方就在LA南边不远的地方,都在南加州。。。。
avatar
e*o
21
没去重吧。

【在 p*****2 的大作中提到】
:
: (defn find-k [n]
: (let [s (int (Math/sqrt n))]
: (distinct
: (for [a (range 1 (inc s))
: b (range a (inc s))
: :let [c (+ (* a a) (* b b))]
: :when (<= c n)]
: c))))

avatar
l*a
22
if ((i * i + j * j) == k)
<=n就可以了
少一重循环

【在 z*********8 的大作中提到】
: public class Find_A_K
: {
: public static void findK(int n) {
: List result = new ArrayList();
: for (int k = 1; k <= n; k++)
: {
: for (int i = 1; i <= Math.sqrt(k); i++)
: for (int j = 1; j <= Math.sqrt(k); j++) {
: if ((i * i + j * j) == k)
: {

avatar
l*a
23
注意他的循环初始条件

【在 e*******o 的大作中提到】
: 没去重吧。
avatar
z*8
24
update:
public class Find_A_K
{
public static void findK(int n)
{
List result = new ArrayList();
for (int i = 1; i <= Math.sqrt(n); i++)

{ for (int j = 1; j <= Math.sqrt(n); j++)
{
int mul = i*i + j*j;
if (mul <= n)
{
if(!result.contains(mul))
result.add(mul);

}
}
}
for(int k = 0; k{
System.out.println(result.get(k));
}
}
avatar
s*x
25
something I am missing.
k = a^2 + b^2, what else do you need to do? there will be only one K.
if k is given, find a and b, which may make more sense.
avatar
e*o
26
假设 b >= a , 参考二爷的程序。
最后去重,你一个一个的检验多费功夫。
去重不可少的
5,5,50
1,7,50

【在 z*********8 的大作中提到】
: update:
: public class Find_A_K
: {
: public static void findK(int n)
: {
: List result = new ArrayList();
: for (int i = 1; i <= Math.sqrt(n); i++)
:
: { for (int j = 1; j <= Math.sqrt(n); j++)
: {

avatar
a*s
27
你们以上的搜索都是brute force没有注意到数字的特殊性。
当 a + b = c 时而且a,b,c都是正整数,
a^2 + b^2 <= c^2 是永远成立的。
所以搜索的范围可以减小。只需要从两个数的和大于等于sqrt(k),并且两个数都比sqrt
(k)小,里面找就行了。在利用对称性又可以进一步减少搜索的范围。
edit:
另外如果k是偶数,两个数必须同时是奇数或偶数
如果k是奇数,两个数必须一个是奇数一个偶数
avatar
p*2
28

确实有问题。fix了。

【在 e*******o 的大作中提到】
: 假设 b >= a , 参考二爷的程序。
: 最后去重,你一个一个的检验多费功夫。
: 去重不可少的
: 5,5,50
: 1,7,50

avatar
T*e
29
用一个min heap,每次把a,b的组合压进去,取出的时候每次都能保证顶部的值都是最
小,对于取出的组合,如果a和b相等就把(a,b+1)压入heap,否则压入(a+1,b)和(a,b+
1)(因为a和b是对称的,所以我们每次都要保证一个数不能比另一个数小,否则会有重
复)
avatar
m*e
30
public static void findSquareSum(int n)
{
for(int a = 1, lenA = (int) Math.ceil(Math.sqrt(n)); a < lenA ; a++)
for (int b = 1, lenB = (int) Math.sqrt(n - a * a); b <= lenB && b <= a;
b ++)
System.out.println("a : " + a + ", b : " + b + " -> " + (a*a + b*b));
}
avatar
b*f
31
Mark
avatar
p*3
32

可以把找a^2 + b^2 = k的双重循环改成单循环吗
比如找 k = 41
1, 2, 3, 4, 5, 6
1^2 + 6^2 = 37 < 41, left++
2^2 + 6^2 = 40 < 41, left++
3^2 + 6^2 = 45 > 41, right--
3^2 + 5^2 = 34 < 41, left++
4^2 + 5^2 = 41 return

【在 p*****2 的大作中提到】
:
: 确实有问题。fix了。

avatar
b*o
33
应该是给定k求a,b吧??

★ 发自iPhone App: ChineseWeb 8.6

【在 z*********8 的大作中提到】
: 问个题目: 从1-n 中找出k, 使得 k=a^2 +b^2 (a b 为整数)
: 有好的算法吗?

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