[問題] 將n個數字隨機排列已回收
小弟是matlab的新手,最近教授上課要我們寫一個有關抽樣的程式,
要取n個數字,取n次,不重複。
不能用已經造好的,一輸入答案就出來的函數(e.g. randperm())
後來再隔一次上課的時候,教授說有方法可以一行就能完成這件事,
但是在下我一直想不到。
他講的演算法是,產生n個隨機變數就能有n個大小,然後使用sort之類的東西。
他只有做提示,提示也到此為止……
小弟我左思右想,想了一個很接近的,但是很顯然的不是。
首先,我寫了這個:
X=rand(n);
X2=sort(X)
ans=find(X2(1)==X);
這樣,ans就抓到了X在第幾個位置和X2(1)的值是相等的,
也因此在下寫了下面一式:
X=rand(n);
ans=find(sort(X)==X);
結果,這樣的寫法只會抓出sort後沒有更換位置的值在哪個位置。
而不是我預期的:抓出所有位置產生一個向量。
如果單純的只轉置sort(X)會長度不符、加上"."的話會運算錯誤……
--
忘了離開時門鎖了沒 忘了這是第幾次後悔 忘了怎麼開始去喜歡 忘了要好好過每一天 忘TB
忘了洗衣機裡的T-血 忘了當初愛上的是誰 忘了一個人怎麼習慣 忘了我還有大好歲月 記ia
忘了當你面說聲再見 忘了我本來有的底線 忘了別恐慌順其自然 忘了比起你我更耀眼 丟zc
忘了你和你熱鬧花邊 忘了對自己有多抱歉 和自己相處比較實在 好險現在我即時發現 掉z
你 也只是做自己 不需為誰 我 也只是卡到陰 現在OK 你 也只是一不小心 過分了點 y
嘿 別說出來 這 就太不帥 讓 一切淡然 反正 早沒人在
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.186.206
→
04/08 23:41, , 1F
04/08 23:41, 1F
→
04/09 00:08, , 2F
04/09 00:08, 2F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章