Re: [問題] 範圍內跳動的整數已回收

看板MATLAB作者 (如果狗狗飛上天)時間15年前 (2010/10/30 04:25), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串2/4 (看更多)
※ 引述《wang0913 (去你的機率)》之銘言: : 實在是想不出來如何隨機產生4個 : 相加後小於某範位內的偶數 : 懇請高手幫忙解答 感謝 例如小於100,那麼在0-100這條只有偶數的數線 你可以隨機選取3個數切下去,把線分成4段.再去 算這四條線的長度,某種程度上,你獲得了四個隨 機的,和為100的偶數 以30為例: 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 * * * __6___ ___8_____ ________12_______ __4___ 上面16個數,我隨機挑3個,例如我挑了6,14,26 也就是說30這條線,被切成了4段,我只要分別算出 這4段的長度,這4個長度加起來就會是30了. 所以是6,8,12,4,加起來剛好是30. 應該是個很簡單的程式,5分鐘就可以寫好了. 參考一下. 但這樣的程式有個問題,就是數字可能重複,因為 你可能剛好切出兩段長度相同的.但這也不是太難 避開,你在程式裡用if,如果挑出兩個一樣的就重來 直到挑出4個不同的為止就解決了. -- ★人生中最溫暖的夏天是在紐約的冬天 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 169.237.42.47 ※ 編輯: pipidog 來自: 169.237.42.47 (10/30 04:30)

10/30 17:11, , 1F
感謝大大提供想法
10/30 17:11, 1F

10/31 13:15, , 2F
我沒看清楚你只是要"小於"某個範圍,如果是這樣也不難,你就
10/31 13:15, 2F

10/31 13:16, , 3F
取四個點,切成五段,取前四段的長度就好了,這樣前四段長度
10/31 13:16, 3F

10/31 13:16, , 4F
的總和肯定小於等於你的上限值
10/31 13:16, 4F

10/31 13:17, , 5F
若要避免重複取值,除了我上面講的if之外,你也可以在每次取
10/31 13:17, 5F

10/31 13:18, , 6F
值的時候,就把條件加下去,這樣避免一重複就全部重來的浪費
10/31 13:18, 6F
文章代碼(AID): #1Cooslgv (MATLAB)
文章代碼(AID): #1Cooslgv (MATLAB)