| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1146 人关注过本帖
标题:求公式 急 请各位大侠帮帮忙哈
只看楼主 加入收藏
风影空
Rank: 1
等 级:新手上路
帖 子:73
专家分:2
注 册:2009-7-23
结帖率:75%
收藏
已结贴  问题点数:8 回复次数:11 
求公式 急 请各位大侠帮帮忙哈


这个公式我用java  应该如何表示呢  
我原先是 Math.pow(g,x)%p  但当我输入g=13,x=23,p=101 我的程序得出来的是12.0 ,但正确答案却是49,
我是哪里错了呢   请各位大侠帮帮忙  谢谢哈
搜索更多相关主题的帖子: 公式 
2010-10-07 20:05
风影空
Rank: 1
等 级:新手上路
帖 子:73
专家分:2
注 册:2009-7-23
收藏
得分:0 
公式:

Y= G x (mod p)

x  是指数(这里我写不出来)

麻烦大家了
2010-10-07 20:15
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
溢出了

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-10-08 09:01
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
import java.math.*;

public class TestA
{
    public static void main(String[] args)
    {
        BigDecimal s,t[],g;
        int x = 23;
        int p = 101;
        g = new BigDecimal(13);
        s = g.pow(x);
        t = s.divideAndRemainder(new BigDecimal(p));
        System.out.println(s);
        System.out.println(t[1]);
    }
}

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-10-08 09:28
风影空
Rank: 1
等 级:新手上路
帖 子:73
专家分:2
注 册:2009-7-23
收藏
得分:0 
import java.util.*;

public class main{
    public static void main(String args[]){
        Scanner reader=new Scanner(System.in);
        System.out.println("Please input g,x,p(Separated By Space):");
        System.out.print("g=");   
        long g=reader.nextLong();
        System.out.print("x=");
            long x=reader.nextLong();
            System.out.print("p=");
            long p=reader.nextLong();
    System.out.println("y:"+Math.pow(g, x) % p);


这是我原来的程序 应该如何改呢???

[ 本帖最后由 风影空 于 2010-10-8 12:34 编辑 ]
2010-10-08 12:33
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:8 
以下是引用风影空在2010-10-8 12:33:49的发言:

import java.util.*;

public class main{
    public static void main(String args[]){
        Scanner reader=new Scanner(System.in);
        System.out.println("Please input g,x,p(Separated By Space):");
        System.out.print("g=");   
        long g=reader.nextLong();
        System.out.print("x=");
            long x=reader.nextLong();
            System.out.print("p=");
            long p=reader.nextLong();
    System.out.println("y:"+Math.pow(g, x) % p);


这是我原来的程序 应该如何改呢???
import java.math.*;
import java.util.*;

public class main{
    public static void main(String args[]){
        BigDecimal t[],s;
        Scanner reader=new Scanner(System.in);
        System.out.println("Please input g,x,p(Separated By Space):");
        System.out.print("g=");   
        BigDecimal g=new BigDecimal(reader.nextLong());
        System.out.print("x=");
        int x=reader.nextInt();
        System.out.print("p=");
        BigDecimal p=new BigDecimal(reader.nextLong());
        s = g.pow(x);
        t = s.divideAndRemainder(p);
        System.out.println("y:"+t[1]);
    }
}

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-10-08 14:09
风影空
Rank: 1
等 级:新手上路
帖 子:73
专家分:2
注 册:2009-7-23
收藏
得分:0 
BigDecimal   
divideAndRemainder
这两个东东 我太认识  能否解释下  谢谢
2010-10-08 15:22
风影空
Rank: 1
等 级:新手上路
帖 子:73
专家分:2
注 册:2009-7-23
收藏
得分:0 
回复 5楼 风影空
BigDecimal   
divideAndRemainder
这两个东东 我太认识  能否解释下  谢谢
2010-10-08 15:33
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用风影空在2010-10-8 15:33:55的发言:

BigDecimal   
divideAndRemainder
这两个东东 我太认识  能否解释下  谢谢
BigDecimal 类是在java.math包中
divideAndRemainder, pow是BigDecimal 类中的方法
详细查JDK API文档

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-10-08 15:42
风影空
Rank: 1
等 级:新手上路
帖 子:73
专家分:2
注 册:2009-7-23
收藏
得分:0 
回复 8楼 风影空
为什么在BigDecimal里面的+,-都不能正常使用哈
 应该如何去使用它们呢
比如我想做个p-1  但是p已经定义问BigDecimal 所以p-1会出现错误

以下是代码  麻烦大家帮下忙  谢谢

import java.util.*;
import java.math.*;

public class main{
    public static void main(String args[]){
        
        BigDecimal a,y[];
        
        Scanner reader=new Scanner(System.in);
        System.out.println("Please input g,x,p(Separated By Space):");
        System.out.print("g=");   
        BigDecimal g=new BigDecimal(reader.nextLong());
        System.out.print("x=");
            int x=reader.nextInt();
            System.out.print("p=");
            BigDecimal p=new BigDecimal(reader.nextLong());
           a=g.pow(x);
            y=a.divideAndRemainder(p);
            System.out.println("结果y:"+y[1]);
            
            System.out.print("Please input M:");
            BigDecimal M=new BigDecimal(reader.nextLong());
            BigDecimal m=new BigDecimal(reader.nextLong());
            BigDecimal s=new BigDecimal(reader.nextLong());
        
            m=M.divideAndRemainder(p-1);
        
            s=(y+M).pow(m);
        
            System.out.println("s="+s);
            
    }        
   
}


[ 本帖最后由 风影空 于 2010-10-8 23:55 编辑 ]
2010-10-08 23:16
快速回复:求公式 急 请各位大侠帮帮忙哈
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020119 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved