请问scilab中有没有现成的转换进制的函数?

43 views
Skip to first unread message

Qian Hong

unread,
Jan 4, 2011, 12:34:06 AM1/4/11
to ade-s...@googlegroups.com
我想把一个n进制的小数转换为m进制的小数,scilab中有这种函数吗?
在网上用scilab base convert这样的关键词搜不到结果.

谢谢!

另外,最近看到一篇有意思的东西,与大家分享一下 :
Matrix67: My Blog » Blog Archive » 19有什么特别的地方?

文中说到,
把从 1/19 到 18/19 的所有分数展开成小数,得到一个 18 × 18 的数字方阵。它是一个幻方——每一行、每一列和两条对角线上的数字之和都是 81 (注:严格意义上说它不算幻方,因为有相同数字)。

我发现二进制的1/3和2/3也有相同的性质,想验证一下是否k进制的m/(2k-1)符合性质.

祝大家新年快乐!

--
Regards,
Qian Hong
-
Send from Ubuntu
http://www.ubuntu.com/

Yung-Jang Lee

unread,
Jan 4, 2011, 11:52:25 AM1/4/11
to ade-s...@googlegroups.com


Qian Hong <frac...@gmail.com> 於 2011年1月4日下午1:34 寫道:
我想把一个n进制的小数转换为m进制的小数,scilab中有这种函数吗?
在网上用scilab base convert这样的关键词搜不到结果.



沒有, 但應該可以用 Scilab 寫出這個功能

另外,最近看到一篇有意思的东西,与大家分享一下 :
Matrix67: My Blog » Blog Archive » 19有什么特别的地方?

文中说到,
把从 1/19 到 18/19 的所有分数展开成小数,得到一个 18 × 18 的数字方阵。它是一个幻方——每一行、每一列和两条对角线上的数字之和都是 81 (注:严格意义上说它不算幻方,因为有相同数字)。

我发现二进制的1/3和2/3也有相同的性质,想验证一下是否k进制的m/(2k-1)符合性质.


有意思, 周末有空時想寫個 Scilab 函數試試你的猜想是否為真

 

Yung-Jang Lee

unread,
Jan 4, 2011, 12:25:59 PM1/4/11
to ade-s...@googlegroups.com
忍不住寫了一個 code


發現猜想不成立, base 為 3, 5 時就不成立


(這 code 還沒詳細 debug, 也許有錯也不一定)

------------------
function mMat(base)
    de=2*base-1;
    for nu=1:de-1
    nu=nu*base;
    for k=1:de-1
       m=floor(nu /de);
       printf('%d',m);
       i= nu-de*m;
       nu = i*base;
    end
      printf("\n")
    end
endfunction

// 測試 2 進位
 mMat(2);
 // 測試 10  進位
 mMat(10)
 // 測試 3  進位
   mMat(3)
 
  // 測試 5  進位
   mMat(5)
--------------------------------  

Yung-Jang Lee

unread,
Jan 5, 2011, 8:31:35 AM1/5/11
to ade-s...@googlegroups.com

找到另一個幻方為 9進位表示的 1/17,2/17,3/17,.....16/17


結果為 :

 
    0.    4.    6.    7.    8.    4.    2.    1.    0.    4.    6.    7.    8.    4.    2.    1. 
    1.    0.    4.    6.    7.    8.    4.    2.    1.    0.    4.    6.    7.    8.    4.    2. 
    1.    5.    2.    5.    7.    3.    6.    3.    1.    5.    2.    5.    7.    3.    6.    3. 
    2.    1.    0.    4.    6.    7.    8.    4.    2.    1.    0.    4.    6.    7.    8.    4. 
    2.    5.    7.    3.    6.    3.    1.    5.    2.    5.    7.    3.    6.    3.    1.    5. 
    3.    1.    5.    2.    5.    7.    3.    6.    3.    1.    5.    2.    5.    7.    3.    6. 
    3.    6.    3.    1.    5.    2.    5.    7.    3.    6.    3.    1.    5.    2.    5.    7. 
    4.    2.    1.    0.    4.    6.    7.    8.    4.    2.    1.    0.    4.    6.    7.    8. 
    4.    6.    7.    8.    4.    2.    1.    0.    4.    6.    7.    8.    4.    2.    1.    0. 
    5.    2.    5.    7.    3.    6.    3.    1.    5.    2.    5.    7.    3.    6.    3.    1. 
    5.    7.    3.    6.    3.    1.    5.    2.    5.    7.    3.    6.    3.    1.    5.    2. 
    6.    3.    1.    5.    2.    5.    7.    3.    6.    3.    1.    5.    2.    5.    7.    3. 
    6.    7.    8.    4.    2.    1.    0.    4.    6.    7.    8.    4.    2.    1.    0.    4. 
    7.    3.    6.    3.    1.    5.    2.    5.    7.    3.    6.    3.    1.    5.    2.    5. 
    7.    8.    4.    2.    1.    0.    4.    6.    7.    8.    4.    2.    1.    0.    4.    6. 
    8.    4.    2.    1.    0.    4.    6.    7.    8.    4.    2.    1.    0.    4.    6.    7. 
 

個方向之和為  64


Scilab Code 為 :

----------
function mMatK(k,base)
    de=k;
    M=zeros(de-1,de-1);
    for j=1:de-1
    nu=j*base;

    for k=1:de-1
       m=floor(nu /de);
       M(j,k) = m;

       i= nu-de*m;
       nu = i*base;
    end
      printf("\n")
    end
 
    disp( M);
  
   disp(sum(M,'r')); //  橫向和
  
   disp(sum(M,'c')'); // 縱向和
  
   disp(sum(diag(M)) );//主對角線和
  
   disp(sum(diag(M(:,de-1:-1:1))) );  // 反主對角線和
endfunction

mMatK(19,10); //測試 10 進位的 1/19,2/19,.... 18/19
mMatK(17,9);  //     9         1/17,2/17,.....16/17

------  




Qian Hong

unread,
Jan 5, 2011, 9:54:58 AM1/5/11
to ade-s...@googlegroups.com
谢谢Yung-Jang, 学习了!


2011/1/5 Yung-Jang Lee <yjle...@gmail.com>





--
您已訂閱「Google 網上論壇」的「中文 Scilab 教育論壇」群組,因此我們特別傳送這封郵件通知您。
如要在此群組張貼留言,請傳送電子郵件至 ade-s...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 ade-scilab+...@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/ade-scilab?hl=zh-TW

wayne wang

unread,
Jan 6, 2011, 7:48:17 AM1/6/11
to ade-s...@googlegroups.com
哇,蛮有趣的阿.
我用mathematica编了一个小程序,验证了是正确的。
 
并且发现,1/13 的 5进制 ,53的34进制也符合要求

 

--
您已訂閱「Google 網上論壇」的「中文 Scilab 教育論壇」群組,因此我們特別傳送這封郵件通知您。
如要在此群組張貼留言,請傳送電子郵件至 ade-s...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 ade-scilab+...@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/ade-scilab?hl=zh-TW



--
xianwen.wang

Yung-Jang Lee

unread,
Jan 6, 2011, 7:53:42 AM1/6/11
to ade-s...@googlegroups.com
這裡還列出了其他

http://www.worldlingo.com/ma/enwiki/en/Prime_reciprocal_magic_square



Prime Base Total
19 10 81
53 12 286
53 34 858
59 2 29
67 2 33
83 2 41
89 19 792
167 68 5,561
199 41 3,960
199 150 14,751
211 2 105
223 3 222
293 147 21,316
307 5 612
383 10 1,719
389 360 69,646
397 5 792
421 338 70,770
487 6 1,215
503 420 105,169
587 368 107,531




看來這個問題曾有人研究過, 應該可以推出一些必要性規則, 縮小搜索範圍

wayne wang

unread,
Jan 6, 2011, 8:06:13 AM1/6/11
to ade-s...@googlegroups.com
我关心的是10进制,发现了:
19, 383, 32327, 34061, 45341, 61967, 65699, 117541, 158771, 405817, 444287, 456503, 695389, 724781,。。。
更多的可以参考:

:)
Reply all
Reply to author
Forward
0 new messages