史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2006-10-21, 10:42 PM   #1
blueace
註冊會員
榮譽勳章
UID - 210268
在線等級: 級別:8 | 在線時長:107小時 | 升級還需:10小時級別:8 | 在線時長:107小時 | 升級還需:10小時級別:8 | 在線時長:107小時 | 升級還需:10小時
註冊日期: 2005-10-02
VIP期限: 2008-07
文章: 10
精華: 0
現金: 5499 金幣
資產: 5499 金幣
預設 疑問 - 矩陣轉置問題

不知道能不能請問一下,要怎麼寫以下這個程式呢?用c寫的話...
因為想不太出來,一般轉置的矩陣是沒問題,但是要怎麼把第三個value不變呢?
希望有大大可以幫我解答一下,謝謝
參照下方
輸入一個矩陣-->輸出其轉置矩陣
Let the two arrays row_terms and starting_pos be shared
Input:
1. 輸入row x col 數目
2. 輸入矩陣中的值<r, c, v>
輸出一個完整的矩陣表示

row col value
-------------------------
[0] 6 6 8
[1] 0 0 15
[2] 0 3 22
[3] 0 5 -15
[4] 1 1 11
[5] 1 2 3
[6] 2 3 -6
[7] 4 0 91
[8] 5 2 28

轉變成一個轉置矩陣(由小到大排)

row col value
-------------------------
[0] 6 6 8
[1] 0 0 15
[2] 0 4 91
[3] 1 1 11
[4] 2 1 3
[5] 2 5 28
[6] 3 0 22
[7] 3 2 -6
[8] 5 0 -15
blueace 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2006-10-23, 09:00 PM   #2 (permalink)
註冊會員
榮譽勳章
UID - 210268
在線等級: 級別:8 | 在線時長:107小時 | 升級還需:10小時級別:8 | 在線時長:107小時 | 升級還需:10小時級別:8 | 在線時長:107小時 | 升級還需:10小時
註冊日期: 2005-10-02
VIP期限: 2008-07
文章: 10
精華: 0
現金: 5499 金幣
資產: 5499 金幣
預設

嗚..都沒人理我 ....能拜託大家幫個忙好嗎?謝謝了
blueace 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2006-10-27, 04:18 PM   #3 (permalink)
協調管理員
 
飛鳥 的頭像
榮譽勳章
UID - 23073
在線等級: 級別:72 | 在線時長:5513小時 | 升級還需:108小時級別:72 | 在線時長:5513小時 | 升級還需:108小時
註冊日期: 2003-01-07
VIP期限: 無限期
住址: 史萊姆團隊
文章: 7199
精華: 11
現金: 837 金幣
資產: 260029 金幣
預設

不懂耶

你只是要矩陣轉置功能就好了嗎

引用:
6 ,6 ,8
0 ,0 ,15
0 ,3 ,22
0 ,5 ,-15
1 ,1 ,11
1 ,2 ,3
2 ,3 ,-6
4 ,0 ,91
5 ,2 ,28
轉置後應該是

引用:
6 , 0 , 0 , 0 , 1 , 1 , 2 , 4 , 5
6 , 0 , 3 , 5 , 1 , 2 , 3 , 0 , 2
8 ,15 , 22,-15,11,3,-6,91, 28
__________________
http://flybird017.googlepages.com/quok.gif http://flybird020.googlepages.com/new321.gif
寶貝你我的地球
, 請 少開電器,減少溫室氣體排放外,多種植植物,減少列印, 多用背面,丟棄時做垃圾分類。

http://netgames123.googlepages.com/tobikeways.jpg

飛鳥 目前離線  
送花文章: 11706, 收花文章: 3363 篇, 收花: 16453 次
回覆時引用此帖
舊 2006-10-27, 10:46 PM   #4 (permalink)
註冊會員
榮譽勳章
UID - 210268
在線等級: 級別:8 | 在線時長:107小時 | 升級還需:10小時級別:8 | 在線時長:107小時 | 升級還需:10小時級別:8 | 在線時長:107小時 | 升級還需:10小時
註冊日期: 2005-10-02
VIP期限: 2008-07
文章: 10
精華: 0
現金: 5499 金幣
資產: 5499 金幣
預設

感謝你的回答^^
是要轉置沒錯,
但是他還要排序,而且第一行6 6 8不能改變
然後其他的要按照大小排下去後面的值也跟著前面的值排序變動
我會寫轉置,但我卡在排序和第一行的問題
比如說一開始輸入的矩陣是
6 6 8
1 1 3
3 5 8
3 5 6
2 4 9
2 5 4
1 2 8
2 3 8
2 3 1
要變成
6 6 8
1 1 3
1 2 8
2 3 1
2 3 8
2 4 9
2 5 4
3 5 6
3 5 8
這樣子
blueace 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖
舊 2006-10-28, 01:01 AM   #5 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

C/C++語言 腳踏實地的做法
Radix sort
也是用在整數資料的排序方法。 先按照最後一位數(呼叫某個stable 排序法) 排序, 再按照倒數第二位數排序
技巧是一定要用穩定排序才行
當然如果你不用Radix sort也行
記得把如1 1 3先轉成int 113再排 排完再拆 這是小技巧

忽略第一列
Radix ex:
step 1 初值
====
1 1 3
3 5 8
3 5 6
2 4 9
2 5 4
1 2 8
2 3 8
2 3 1

step 2 按照最後一個位數排
====
2 3 1
1 1 3
2 5 4
3 5 6
3 5 8
1 2 8
2 3 8
2 4 9

step 3 按照最後第二個位數排
====
1 1 3
1 2 8
2 3 1
2 3 8
2 4 9
2 5 4
3 5 6
3 5 8

step 4 按照最後第三個位數排
====
1 1 3
1 2 8
2 3 1
2 3 8
2 4 9
2 5 4
3 5 6
3 5 8


Java 偷懶的做法直接呼叫類別
Arrays.sort(a,fromIndex,toIndex);
//一行就做完了

sort(int[] a, int fromIndex, int toIndex)
Sorts the specified range of the specified array of ints into ascending numerical order.

最快的方法 看隔壁的
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 01:48 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1