本帖最後由 ykmran 於 2016-3-26 18:14 編輯
我不是 mingchuno  

btw, 見你Python 個 example 係 Imperative Style 有啲難 Follow (經常中途斷 ...
hihihi123hk 發表於 2016-3-26 12:41


不如試下同一個function for loop run 1000次,睇下要幾耐

我python果個program用pypy3 run,只係用左0.5s
python3就慢10倍

只係run一次計system time既話,python3 4.5ms,pypy3要20ms

TOP

本帖最後由 hihihi123hk 於 2016-3-26 19:39 編輯
不如試下同一個function for loop run 1000次,睇下要幾耐

我python果個program用pypy3 run,只係用左0. ...
ykmran 發表於 2016-3-26 18:11



[info] # Run complete. Total time: 00:03:27
[info]
[info] Benchmark                         Mode  Cnt        Score       Error  Units
[info] ABCDEFGHPPP.optimized             avgt   50  2219355.137 ± 24677.363  ns/op
[info] ABCDEFGHPPP.optimizedAndParallel  avgt   50  2043399.494 ±  7595.632  ns/op

Benchmark result  
optimizedAndParallel ~ 2.04 ms  
optimized ~ 2.21ms

Macbook Pro retina 15" 2012  i7  



[info] # Run complete. Total time: 00:03:38
[info]
[info] Benchmark                         Mode  Cnt        Score       Error  Units
[info] ABCDEFGHPPP.optimized             avgt  500  2239387.299 ± 12559.785  ns/op
[info] ABCDEFGHPPP.optimizedAndParallel  avgt  500  2055075.455 ±  7106.094  ns/op



歡迎 Clone 落你部機試下

https://github.com/gaplo917/abcdefghppp-scala-benchmark

TOP

# Run complete. Total time: 00:03:27

Benchmark                         Mode  Cnt        Score ...
hihihi123hk 發表於 2016-3-26 19:19



    唔識睇

TOP

本帖最後由 hihihi123hk 於 2016-3-26 19:42 編輯
    [info] ABCDEFGHPPP.optimizedAndParallel  avgt  500  2055075.455 ±  7106.094  ns/op


avgt ( Avgerage Time Mode )
500 (iteration time)

2055075.455ns ±  7106.094ns
~= 2.05 ms ± 0.07ms

Push 咗上 Git 睇下係你部機要 Run 幾耐

裝個 Sbt

打兩句 Command 就跑到

https://github.com/gaplo917/abcdefghppp-scala-benchmark

TOP

本帖最後由 小野妹子 於 2016-3-27 14:19 編輯

(DEFUN FIND-AUX (N ANSWER) ; find the nth digi of answer
  (COND ((= N 9)(PRINT ANSWER))
        (T (FIND-SUB N 0 ANSWER))))
(DEFUN FIND-SUB (N M ANSWER) ;try to append nth digi as m to answer list
  (COND ((= M 10)'END)
        ((AND (= M 0) (EVENP N))(FIND-SUB N (+ M 1) ANSWER)) ;A C E G P <>0
        (T (COND ((MEMBER M ANSWER)) ; each digi only appears once in answer
                 ((NOT (PASS-RULE1P (APPEND ANSWER (LIST M)))))
                 ((NOT (PASS-RULE2P (APPEND ANSWER (LIST M)))))
                 (T (FIND-AUX (+ N 1) (APPEND ANSWER (LIST M)))))
           (FIND-SUB N (+ M 1) ANSWER))))
(DEFUN FIND-ANSWER () (FIND-AUX 0 NIL)) ;find answer list (A B C D E F G H P)
(DEFUN PASS-RULE1P (ANSWER) ;pass-rule1 : AB - CD = EF
  (COND ((>= (LENGTH ANSWER) 6)
         (= (- (+ (* (NTH 0 ANSWER) 10)
                  (NTH 1 ANSWER))
               (+ (* (NTH 2 ANSWER) 10)
                  (NTH 3 ANSWER)))
            (+ (* (NTH 4 ANSWER) 10)
               (NTH 5 ANSWER))))
        (T T)))
(DEFUN PASS-RULE2P (ANSWER) ;pass-rule2 : EF + GH = PPP
  (COND ((>= (LENGTH ANSWER) 9)
         (= (+ (+ (* (NTH 4 ANSWER) 10)
                  (NTH 5 ANSWER))
               (+ (* (NTH 6 ANSWER) 10)
                  (NTH 7 ANSWER)))
            (LET ((P (NTH 8 ANSWER)))
                 (+ (* P 100) (* P 10) P))))
        (T T)))

TOP

本帖最後由 7h1r733n 於 2016-3-27 18:34 編輯
Facebook Original 解法

真係一石激千浪
hihihi123hk 發表於 2016-3-25 16:11


莫非你又識阿Ray?
如果係.. 香港真係好細...  

講返條題... 條題我覺得10秒入面搵到個答案都係可以接受.. 因為最重要一個原因係.... 呢個答案你run完就唔需要再run... 而且寫得衰同寫得好差距真係細到睇唔到..

i7 4790k (上面係github度php-2-for-loop, 下面係github度php-9-for-loop不過我改左少少  ):
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

本帖最後由 7h1r733n 於 2016-3-27 20:59 編輯

第三個係我寫o既..
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

本帖最後由 arthurkycheung 於 2016-3-27 20:29 編輯

I would like to offer another way of thinking :

1. To find the numbers where (A-C+G)*10=100 (1<=n<=9)
2. To find the numbers where B-D+H=11(0<=n<=9)
3. Evaluates them against G, H and exclude those duplicates
4. Print the correct combinations.

Just my 2 cents

TOP

回覆 38# arthurkycheung


   
Then you hv to prove why

(A-C+G)*10 = 110
B-D+H = 1

shouldnt be included into consideration

via HKEPC Ionic Reader v1.2.9 - iPhone

TOP

除非話明唔可以用0, 否則leading 0 都應該計埋:

85-06=79+32=111

TOP