寫了一個mapping

看板Engineer作者 (.....)時間7小時前 (2026/06/23 16:00), 編輯推噓1(105)
留言6則, 3人參與, 2小時前最新討論串1/1
義務教育應該上過,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

06/23 17:15, 6小時前 , 1F
我滿手發哥 今天加入國巨跟智邦 明天再跌就加碼台積
06/23 17:15, 1F

06/23 17:15, 6小時前 , 2F
繼續攤國巨
06/23 17:15, 2F

06/23 17:58, 5小時前 , 3F
羨慕滿手發哥,這一波準備財富自由了吧
06/23 17:58, 3F

06/23 18:04, 5小時前 , 4F
昨天發哥沒什麼漲 QQ
06/23 18:04, 4F

06/23 18:23, 5小時前 , 5F
QQ
06/23 18:23, 5F

06/23 21:09, 2小時前 , 6F
我手上沒有台股,似乎有一點點ETF
06/23 21:09, 6F
文章代碼(AID): #1gEZqlYO (Engineer)