一個關於1到100之間和與積的數學題
微信朋友圈裏面有大神發了一道題,我表示沒有看懂。。抽時間研究下,先發上來 Gauss和Poincare在天堂相遇了,上帝說:你們都是人間最偉大的數學家,那我來出道題考考你們誰更聰明。我在左手寫一個大於1小於100的數,在右手相同寫一個大於1小於100的數,然後把他們的和寫在Gauss手上。把積寫在Poincare手上。看看你們能不能猜出這兩個數字是幾。Gauss看了手上的數字,說:“我不知道這兩個數字是幾。可我保證Poincare也不知道。
” Poincare看了手上的數字,說:“我原來的確不知道那兩個數字是幾,可我如今知道了。
” Gauss說:“那我也知道了。” 問題:那兩個數字是幾? WITH T_NUM AS (SELECT ROWNUM + 1 NUM FROM DUAL CONNECT BY LEVEL < 99) SELECT A, B FROM ( SELECT A, B, TOTAL, MUL, MUL_P, COUNT(DECODE(MUL_P, 1, 1 )) OVER(PARTITION BY TOTAL) VALUE FROM ( SELECT A, B, TOTAL, MUL, COUNT(*) OVER ( PARTITION BY TOTAL) TOTAL_P, COUNT(*) OVER ( PARTITION BY MUL) MUL_P FROM ( SELECT A, B, TOTAL, MUL, MIN(MUL_P) OVER ( PARTITION BY TOTAL) MUL_M FROM ( SELECT A.NUM A, B.NUM B, A.NUM + B.NUM TOTAL, A.NUM * B.NUM MUL, COUNT(*) OVER ( PARTITION BY A.NUM + B.NUM) TOTAL_P, COUNT(*) OVER ( PARTITION BY A.NUM * B.NUM) MUL_P FROM T_NUM A, T_NUM B WHERE A.NUM < B.NUM ) ) WHERE MUL_M != 1 ) ) WHERE MUL_P = 1 AND VALUE = 1 ;
一個關於1到100之間和與積的數學題