http://www.cut-the-knot.org/pythagoras/PT_matrix.shtml
http://en.wikipedia.org/wiki/Tree_of_primitive_Pythagorean_triples
2014年9月29日 星期一
2014年9月4日 星期四
[FWD] HTTP 302
Thread Name:
Sample Start: 2014-09-05 12:01:16 CST
Load time: 64
Latency: 64
Size in bytes: 525
Headers size in bytes: 263
Body size in bytes: 262
Sample Count: 1
Error Count: 0
Response code: 302
Response message: Found
Response headers:
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.com.tw/?gfe_rd=cr
Content-Length: 262
Date: Fri, 05 Sep 2014 04:01:17 GMT
Server: GFE/2.0
Alternate-Protocol: 80:quic
HTTPSampleResult fields:
ContentType: text/html; charset=UTF-8
DataEncoding: UTF-8
Sample Start: 2014-09-05 12:01:16 CST
Load time: 64
Latency: 64
Size in bytes: 525
Headers size in bytes: 263
Body size in bytes: 262
Sample Count: 1
Error Count: 0
Response code: 302
Response message: Found
Response headers:
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.com.tw/?gfe_rd=cr
Content-Length: 262
Date: Fri, 05 Sep 2014 04:01:17 GMT
Server: GFE/2.0
Alternate-Protocol: 80:quic
HTTPSampleResult fields:
ContentType: text/html; charset=UTF-8
DataEncoding: UTF-8
傳說中的 URL redirection,今天玩 jmeter 發現的。
2014年8月25日 星期一
2014年8月1日 星期五
[ProjectEuler] 423
Problem: http://projecteuler.net/problem=423
Super slow code.
Time complexity: O(n^2 / ln(n))
I need to think another way to solve it.
Super slow code.
Time complexity: O(n^2 / ln(n))
I need to think another way to solve it.
import bisect import sys class ConsecutivePrimeCountingFunction(): def __init__(self): self.primes = [] self.pos = 0 self._init_primes() def _init_primes(self): #SIEVE_RANGE = 50100 SIEVE_RANGE = 50000100 sieve_visited = [False] * SIEVE_RANGE sieve_visited[0] = sieve_visited[1] = True for i in range(2, SIEVE_RANGE): if sieve_visited[i] is False: self.primes.append(i) for j in range(i + i, SIEVE_RANGE, i): sieve_visited[j] = True print('Total prime count:', len(self.primes)) def get(self, n): if n >= self.primes[self.pos]: self.pos += 1 return self.pos def reset(self): self.pos = 0 def get_directly(self, n): return bisect.bisect(self.primes, n) class Problem(): def __init__(self): self.mod = 1000000007 self.consecutive_prime_counting_function = ConsecutivePrimeCountingFunction() def solve(self): for n in [50000000]: #print(self.S(n)) print(self.S_lite(n)) def S_lite(self, L): max_count = self.consecutive_prime_counting_function.get_directly(L) + 1 consecutive_map = [0 for count in range(max_count)] consecutive_map[0] = 1 print('Big data structure |consecutive_map| is ready') result = 6 # Trivial case for C(1) = 6 self.consecutive_prime_counting_function.reset() for i in range(2, L+1): if i % 1000 == 0: print('Curr:', i, '=>', result) pos = self.consecutive_prime_counting_function.get(i) prev = consecutive_map[0] consecutive_map[0] = 5 * prev for count in range(1, max_count): curr = consecutive_map[count] if curr == 0 and prev == 0: break consecutive_map[count] = curr * 5 + prev prev = curr result = (result + sum(consecutive_map[:pos + 1]) * 6) % self.mod return result def C(self, n): max_count = self.consecutive_prime_counting_function.get_directly(n) + 1 consecutive_map = [0 for count in range(max_count)] consecutive_map[0] = 1 for i in range(n - 1): next_consecutive_map = [0 for count in range(max_count)] next_consecutive_map[0] = consecutive_map[0] * 5 for count in range(1, max_count): next_consecutive_map[count] = consecutive_map[count] * 5 + consecutive_map[count - 1] consecutive_map = next_consecutive_map result = sum(consecutive_map) * 6 return result def S(self, L): return sum([self.C(n) for n in range(1, L + 1)]) % self.mod def main(): problem = Problem() problem.solve() if __name__ == '__main__': sys.exit(main())
2014年6月11日 星期三
[ProjectEuler] Problem 473
大原則:碰到 Fibonacci 的問題都不會太困難,一定會有什麼遞迴。
如果問的數字很大,可以用 Q-matrix 把 complexity time O(N) 降為 O(logN)
不過還是有幾題卡住就是了,喵的。
如果問的數字很大,可以用 Q-matrix 把 complexity time O(N) 降為 O(logN)
不過還是有幾題卡住就是了,喵的。
2014年6月8日 星期日
[Redis] Hacking Strings
Link: http://redis.io/topics/internals-sds
關鍵就是這個。
-----------
|5|0|redis|
-----------
^ ^
sh sh->buf
關鍵就是這個。
2014年5月12日 星期一
[GIT] Changing git remote origin
git remote rm origin
git remote add origin https://username@bitbucket.org/your.new.repo
2014年5月6日 星期二
2014年5月5日 星期一
2014年5月4日 星期日
[ProjectEuler] Notes on Problem #435
Lemma: F_n(x) = (f_{n+1} x^{n+1} + f_{n} x^{n+2} - x) / (x^2 + x - 1)
F_n(x)
= sum_{0 <= i <= n} f_i x^i
= sum_{1 <= i <= n} f_i x^i ...... (A)
x F_n(x)
= sum_{0 <= i <= n} f_{i} x^{i+1}
= sum_{1 <= i+1 <= n+1} f_{i+1 - 1} x^{i+1}
= sum_{1 <= j <= n+1} f_{j-1} x^{j}
= sum_{1 <= i <= n} f_{i-1} x^{i} + f_n x^{n+1} ...... (B)
(A) + (B) implies that (x+1) F_n(x) = sum_{1 <= i <= n} f_{i+1} x^i + f_n x^{n+1}
Multiply x on both sides:
x(x+1) F_n(x) = sum_{1 <= i <= n} f_{i+1} x^{i+1} + f_n x^{n+2}
= sum_{2 <= i+1 <= n+1} f_{i+1} x^{i+1} + f_n x^{n+2}
= sum_{2 <= i <= n+1} f_i x^i + f_n x^{n+2}
= sum_{1 <= i <= n} f_i x^i - f_1 x + f_{n+1} x^{n+1} + f_n x^{n+2}
= F_n(x) + f_{n+1} x^{n+1} + f_n x^{n+2} - x
(x^2 + x - 1) F_n(x) = f_{n+1} x^{n+1} + f_n x^{n+2} - x
So, F_n(x) = (f_{n+1} x^{n+1} + f_n x^{n+2} - x) / (x^2 + x - 1)
不過這離解題還有一大段的距離。
2014年4月28日 星期一
[ProjectEuler] Problem #320
結果我還是用筆電硬幹 ((當然有一些技巧))
跑了五小時 Macbook Pro 完全性的在發燙呀!
還好答案是對的,有時候很懷疑電腦跑太久答案會算錯。
2014年4月26日 星期六
2014年4月23日 星期三
2014年4月22日 星期二
[ProjectEuler] TODO: Dynamic programming
Problem #217
Apply dynamic programming on n, not on 10^n ((Solved))
Problem #427
Apply dynamic programming on n-sequence (?)
Problem #413
Apply dynamic programming (?)
應該吧,總之就是再多想想好了。
Apply dynamic programming on n, not on 10^n ((Solved))
Problem #427
Apply dynamic programming on n-sequence (?)
Problem #413
Apply dynamic programming (?)
應該吧,總之就是再多想想好了。
2014年4月21日 星期一
[ProjectEuler] Problem #379
不知道怎麼解。
參考資料:
http://2000clicks.com/mathhelp/NumberTh05DivisorsTau.aspx
但我要計算的是 Σ Tau(k^2) where k = 1 to N. N = 10^6 or 10^12.
參考資料:
http://2000clicks.com/mathhelp/NumberTh05DivisorsTau.aspx
但我要計算的是 Σ Tau(k^2) where k = 1 to N. N = 10^6 or 10^12.
2014年3月25日 星期二
[FWD] google-guice
看起來會比 Spring framework 輕量化。
https://code.google.com/p/google-guice/wiki/Motivation?tm=6
Direct constructor calls 第一個解法就是使用 factory pattern,但違反了 Dependency Injection 原則,這個也與 single responsibility 有關,以上面連結為例,BillingService 究竟不該負責產生CreditCardProcessor 以及 TransactionLog。
bind(TransactionLog.class).to(DatabaseTransactionLog.class); bind(CreditCardProcessor.class).to(PaypalCreditCardProcessor.class); bind(BillingService.class).to(RealBillingService.class);
所以自然而然就會有這樣子的設計: binding,頗舒服的設計。
2014年3月11日 星期二
2014年2月20日 星期四
[PE] Problem 407 & 451 & 457
Problem #451 is harder than #407.
However, if we know how to solve #457, #451 and #457 are the same.
訂閱:
文章 (Atom)