Re: [問題] 另一個亂數矩陣的問題

看板java作者 (thinking in java)時間18年前 (2006/03/14 15:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串10/10 (看更多)
※ [本文轉錄自 qrtt1 信箱] 作者: qrtt1.bbs@gicie.twbbs.org 標題: Re: [轉錄][問題] 另一個亂數矩陣的問題 時間: Tue Mar 14 15:36:27 2006 作者: qrtt1 (the moment) 看板: qrtt1 標題: Re: [轉錄][問題] 另一個亂數矩陣的問題 時間: Tue Mar 14 15:22:03 2006 ※ 引述《qrtt1 (the moment)》之銘言: : ※ [本文轉錄自 qrtt1 信箱] : 作者: qrtt1.bbs@ptt.cc (qrtt1.bbs@ptt.cc) : 標題: [問題] 另一個亂數矩陣的問題 : 時間: Tue Mar 14 14:45:38 2006 : 作者: oniki (宇治金時月見雪) 看板: java : 標題: [問題] 另一個亂數矩陣的問題@@" : 時間: Fri Mar 10 14:29:44 2006 : 首先很謝謝各位的回答 : 小弟受益良多:p : 現在又有個問題了>"< : 我要產生一個矩陣是像下面的樣子: : 0 1 0 1 1 1 0 1 : 1 0 0 0 1 1 1 0 : 0 1 1 0 0 1 0 0 : 1 1 0 1 0 0 0 1 : 1 0 0 1 1 0 1 0 : 每個element都是0或1 : 這個比較簡單點 但是我想加入限制 : 舉例說 : 上面那個矩陣 row1的1的總數是5 : row2的1的總數是4 : row3 3 : row4 4 : row5 4 : 這樣平均值是(5+4+3+4+4)/5=4 : 我要用mean跟min, max這三個值來控制每一列的1的出現數目 : 例如 我設定mean=4, min=3, max=5 : 就是設定讓整個matrix的每一個row的平均1總數是4 : 但當然不一定每個row的1總數都是4 : 會亂數落在3到5之間 : 但是整體要符合平均1總數是4就對了 : 想請問各位高手該怎麼做呢 謝謝各位<(_ _)> 沉澱了幾天, 現在腦袋比較清醒了一點, 再來想這個問題 好像沒有那麼複雜了 假設我們有一個m*n的矩陣,為了 方便解說我們先把為1的元素往左塞。 min: 為黃色 max: 為紅色 mean: 為綠色 ┌ ------------- n ------------- ┐ IIIIIIIIIIIIIIIIIIIIIIIIIIIOOOO IIIIIIIIIIIIIIIIIIOOOOOOOOOOOOO IIIIIIIIIIIIIIIIOOOOOOOOOOOOOOO IIIIIIIIIIIIIIIIOOOOOOOOOOOOOOO m IIIIIIIIIIIIIIIIOOOOOOOOOOOOOOO IIIIIIIIIIIIIIIIIIIIIIIOOOOOOOO IIIIIIIIIIIIIIIIIIIIIIIIIIIIOOO ............................... ............................... IIIIIIIIIIIIIIIIIIIOOOOOOOOOOOO └ ┘ 要滿足min, max, mean的條件 首先要先計算能至少能自由按排的元素有那些 總共要放入的元素有: m*mean 個 -- (a) 要符合min條件的元素有: m*min 個 -- (b) 二式相減得 (a) - (b) = freeElement -- (c) 若, freeElement <=0 則沒有多餘的元素滿足max條件 那freeElement至少滿足一列為max者條件為: freeElement > (max-min) 移項 freeElement - (max-min) > 0 -- (d) 若滿足(c)(d)二式條件則矩陣是可能做出來的 ============================================= 談完了條件, 來談實作. (您可以透過條件式判斷要不要執行產生矩陣的動作) 首先我們要先將矩陣的min部填滿 IIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIII ................... ................... IIIIIIIIIIIIIIIIIII 接下來就依實作的人嗜好要如何分散freeElement 到各row的尾端 弟在此提供想法之一, 分一列分配(int)rand(max-min)個 iterative直到所有freeElement分配完成 再執行修剪程序:若多超出max時, 則隨機塞入未達max的row 若無則隨機由元素個數大於min+1者抽出補上, 直到滿足max條件 最後, 把每一個row攪一攪成隨機狀 -- 我所追求的純粹只是任性,完全的任性。 -- 挪威的森林 -- ※ Post by qrtt1 from 163.26.34.214 ... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.26.34.214
文章代碼(AID): #145dAiwv (java)
討論串 (同標題文章)
文章代碼(AID): #145dAiwv (java)