看板 Engineer 關於我們 聯絡資訊
義務教育應該上過,function滿足一對一映成,就會存在反函數 (雖然一般人已經忘了這句話了...) 下個問題,怎麼設計一個[0,N]區間的一對一映成函數呢 自己給定質數prime, prime < 2*N int64_t f(int64_t input, int64_t full_size, int prime ) { int64_t size = full_size%prime == 0 ? full_size-1 : (full_size/prime)*prime - 1; if( input >= size ) return input; int64_t result = 0; int64_t offset = size/prime; int64_t n; for( n = 0; n < prime; n++ ) { if( offset*n + n <= input && input <= offset*(n + 1) + n) { result = (input - offset*n - n)*prime +n; break; } } return result; } int64_t g( int64_t input, int64_t full_size, int prime ) { int64_t size = full_size%prime == 0 ? full_size-1 : (full_size/prime)*prime - 1; if( input >= size ) return input; int64_t quotient = input/prime; int64_t remainder = input%prime; int64_t offset = size/prime; int64_t n; int64_t result = offset*remainder + quotient + remainder; return result; } 其中,g是f的反函數,g(f(x)) = x 至於這東西能幹嘛...自己是拿去把一個檔案弄亂,可以想成是某種形式的加密 或是未來小孩國高中後給他當腦筋急轉彎或是當科展題材(?) 我的年代,義務教育都著重在解數學題目 但我覺得開放性的設計數學會比較有趣. (包含程式設計) 工程師忙累了,今天股票被套牢,覺得很悶跑來寫廢文QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.148.110 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Engineer/M.1782201647.A.898.html
nowitzkixd: 我滿手發哥 今天加入國巨跟智邦 明天再跌就加碼台積 06/23 17:15
nowitzkixd: 繼續攤國巨 06/23 17:15
hidog: 羨慕滿手發哥,這一波準備財富自由了吧 06/23 17:58
nowitzkixd: 昨天發哥沒什麼漲 QQ 06/23 18:04
hidog: QQ 06/23 18:23
marra: 我手上沒有台股,似乎有一點點ETF 06/23 21:09