xiaomelody 发表于 2015-1-21 01:46:04

FOTRANR如何将十进制变成二进制

本帖最后由 xiaomelody 于 2015-1-21 18:57 编辑

设置常量{U,V,A,B,C}离散函数f(x)的定义函数f(x(1),...,X(n))的 n个二进制变量设X= {X =(X(1)..×(N)),X(ⅰ)}的二进制。
对于x在X,为s= S(X)= SUM(X(1:n))的
如果 0 <= s <= u: f(x) = SUMA (x(i)*(2*SIN(i*PI/u))/(a+i)**2), i=1..n)
如果 u+1 <= s <= v: f(x) = SUMA (x(i)*(2*COS(i*PI/v))/(b+i)**2), i=1..n)
如果 v+1 <= s <= n: f(x) = SUMA (x(i)*(SIN(i*PI/n)+COS(i*PI/n))/(c+i)**2), i=1..n)
其中,IP是IP数 4*arctg(1)

Esum = SUMA {f(x), x 在 X},
Emax = MAX {f(x), x 在 X},
xmax = arg MAX {f(x), x 在 X}:
Emax=f(xmax)


举例,如果 n = 3,十进制为2**3,需将这个数转换成二进制
需要读取以下,n,u,v,a,b,c中的数据,求 Esum    |    Emax    |         xmax   
================================================================================
   |n |u |v |a |b |c |    Esum    |    Emax    |         xmax         |
   |------------------------------------------|------------|----------------------|
   | 14 |6 |8 | 16 | 17 | 18 |            |            |                      |
   |------------------------------------------|------------|----------------------|
   | 15 |6 | 11 | 18 | 24 | 30 |            |            |                      |
   |------------------------------------------|------------|----------------------|
   | 16 |4 |9 | 22 | 23 | 30 |            |            |                      |
   |------------------------------------------|------------|----------------------|
   | 17 |8 | 12 | 25 | 27 | 29 |            |            |                      |
   |------------------------------------------|------------|----------------------|
   | 14 |7 |9 | 22 | 23 | 25 |            |            |                      |
   |------------------------------------------|------------|----------------------|
   | 15 |7 | 10 | 20 | 21 | 29 |            |            |                      |
   |------------------------------------------|------------|----------------------|
   | 16 |4 | 10 | 19 | 24 | 26 |            |            |                      |
   |------------------------------------------|------------|----------------------|
   | 17 |7 | 11 | 21 | 22 | 32 |            |            |                      |
   ================================================================================

vvt 发表于 2015-1-21 06:45:51

你这些东西真的跟二进制有关吗?看不懂啊....

write( * , '(b)' ) 45678

就可以了

xiaomelody 发表于 2015-1-21 18:58:12

vvt 发表于 2015-1-21 06:45
你这些东西真的跟二进制有关吗?看不懂啊....

write( * , '(b)' ) 45678


有关的,重新发了一次题目,求大神在帮忙看一下

vvt 发表于 2015-1-22 22:00:30

对不起,能力有限,完全看不懂。

转二进制非常简单的一件事情,用 b 格式输出既可。

xiaomelody 发表于 2015-1-23 04:29:33

vvt 发表于 2015-1-22 22:00
对不起,能力有限,完全看不懂。

转二进制非常简单的一件事情,用 b 格式输出既可。


也谢谢了。可能是我解释的不好吧。
页: [1]
查看完整版本: FOTRANR如何将十进制变成二进制