小编ala*_*mpo的帖子

使斐波那契更快

我被要求写一个简单的Fibonacci算法实现,然后让它更快.

这是我的初步实施

public class Fibonacci {

    public static long getFibonacciOf(long n) {
        if (n== 0) {
            return 0;
        } else if (n == 1) {
            return 1;
        } else {
            return getFibonacciOf(n-2) + getFibonacciOf(n-1);
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner (System.in);
        while (true) {
            System.out.println("Enter n :");
            long n = scanner.nextLong();
            if (n >= 0) {
                long beginTime = System.currentTimeMillis();
                long fibo = getFibonacciOf(n);
                long endTime = System.currentTimeMillis();

                long delta = …
Run Code Online (Sandbox Code Playgroud)

java algorithm fibonacci

30
推荐指数
6
解决办法
1万
查看次数

实施Bresenham的圆绘制算法

我编写了Bresenham的圆绘制算法的实现.这种算法利用了圆的高度对称性(它只计算第一个八分圆的点,并利用对称性绘制其他点).因此我期待它非常快.图形编程黑皮书,第35章标题为" Bresenham快速,快速好 ",虽然它是关于线条绘制算法,但我可以合理地期望圆形绘制算法也很快(因为原理是相同).

这是我的java,swing实现

public static void drawBresenhamsCircle(int r, double width, double height, Graphics g) {
    int x,y,d;
    y = r;
    x = 0;

    drawPoint(x, y, width, height,g);
    d = (3-2*(int)r);
    while (x <= y) {
        if (d <= 0) {
            d = d + (4*x + 6);
        } else {
            d = d + 4*(x-y) + 10;
            y--;
        }
        x++;

        drawPoint(x, y, width, height,g);

        drawPoint(-x, y, width, height,g);
        drawPoint(x, -y, width, height,g);

        drawPoint(-x, -y, width, height,g);
        drawPoint(y, …
Run Code Online (Sandbox Code Playgroud)

java algorithm graphics swing bresenham

13
推荐指数
2
解决办法
4093
查看次数

如何在Linux中打开命令终端?

我想使用Java代码在Linux机器上打开终端(命令提示符).我知道如何在Windows中打开命令提示符.我在windows中使用了以下代码

String command= "cmd c/start cmd.exe"
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
Run Code Online (Sandbox Code Playgroud)

我在Linux中需要相同的东西.

谢谢你的回答.我也想运行一个sh脚本.

以下代码是否有效.

String command= "usr/bin/xterm myshell.sh";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
Run Code Online (Sandbox Code Playgroud)

java linux terminal

7
推荐指数
2
解决办法
7万
查看次数

将颜色图层添加到mandelbrot集

我对分形很感兴趣但直到最近才有机会实现它们.我首先实现了一个黑色和白色的mandelbrot设置,然后我尝试添加颜色.

这是我的mandelbrot的实现(我使用org.apache.commons.math3.complex.Complex复数)

public class MyMandelbrot {

    public static int numberOfIterationsToCheck(Complex z0, int max) {
        Complex z = z0;
        for (int t = 0; t < max; t++) {
            if (z.abs() > 2.0) return t;
            z =z.multiply(z).add(z0);
        }
        return max;
    }

    public static void main(String[] args)  {
        double xc   = Double.parseDouble(args[0]);
        double yc   = Double.parseDouble(args[1]);
        double size = Double.parseDouble(args[2]);

        int N   = 512;   
        int max = 255;   

        Viewer viewer = new Viewer(N, N);
        for (int i = 0; i < N; …
Run Code Online (Sandbox Code Playgroud)

java algorithm fractals

5
推荐指数
1
解决办法
795
查看次数

改进Mitchell的最佳候选算法

我已经成功实现了Mitchell的最佳候选算法.Mitchell的最佳候选算法通过创建k个候选样本并选择k 的最佳值来生成新的随机样本.这里"最佳"样本被定义为距离先前样本最远的样本.该算法近似于泊松盘采样,产生比均匀随机采样更自然的外观(更好的蓝噪声光谱特性).

我试图改善它,特别是在速度方面.因此,我想到的第一个想法是仅将候选样本与最后添加的元素进行比较,而不是将它们与之前的整个样本进行比较.这会偏向泊松圆盘采样,但可能会产生一些有趣的结果.

这是我实施的主要部分

public class MitchellBestCandidateII extends JFrame {

    private List<Point> mitchellPoints = new ArrayList<Point>();
    private Point currentPoint;
    private int currentPointIndex =0;
    private boolean isBeginning = true;
    private Point[] candidatesBunch = new Point[MAX_CANDIDATES_AT_TIME];

    public MitchellBestCandidateII() {      
        computeBestPoints();
        initComponents();
    }
Run Code Online (Sandbox Code Playgroud)

该方法computeBestPoints在这个意义上计算与Mitchell算法不同的点,即它仅将候选者与最后添加的点进行比较,而不是将其与整个样本进行比较.

    private void computeBestPoints() {

        do {
            if (isBeginning) {
                currentPoint = getRandomPoint();
                mitchellPoints.add(currentPoint);
                isBeginning = false;
                currentPointIndex = 0;              
            } 

            setCandidates();
            Point bestCandidate = pickUpCandidateFor(currentPoint);
            mitchellPoints.add(bestCandidate);
            currentPoint = …
Run Code Online (Sandbox Code Playgroud)

java algorithm

5
推荐指数
1
解决办法
1231
查看次数

如何在Java中使用Varargs?

我现在正在学习java中的Varargs.我写了这个方法:

 public static void vrati(Object... arguments){
    for(Object i : arguments)

    System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)

然后我打电话给方法:

 main.vrati(8,2,"String");
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:varargs是否将原始类型转换为对象?因为我在这个方法调用中混合了int和String,并且可以像一个对象一样访问它们.

java casting variadic-functions

3
推荐指数
1
解决办法
331
查看次数

包管理器:对解决方案中的特定项目使用Enable-Migrations

我有一个visual studio 2012解决方案,包含两个VB.Net项目(ASP .NET MVC 4).我首先使用Entite Framework代码与其中一个项目,但我根本没有使用Entity Framework进行第二个项目.当我编写其中一个实体的代码时,我编写了以下代码:

Public Class TacheDeReference
    Inherits BaseModel

    Public DescriptionTache As String


End Class
Run Code Online (Sandbox Code Playgroud)

而不是写:

Public Class TacheDeReference
    Inherits BaseModel

    Public Property DescriptionTache As String


End Class
Run Code Online (Sandbox Code Playgroud)

但在意识到我的错误之前,我已经重新生成了解决方案并运行它,并访问了Entity Framework Code First脚手架流程产生的一些crud用户界面.

现在,当我进行上述更改时,我遇到了以下错误消息:

自创建数据库以来,支持"BlogContext"上下文的模型已更改.请考虑使用"代码优先迁移"来更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269).

当我按照链接进行迁移过程时,第一条指令是Enable-Migrations在包管理器控制台中运行该命令.

当我运行该命令时,我有另一条错误消息告诉我实体框架没有安装在我的一个项目上,这是正常的,因为它只安装在一个项目上

见下图

PM控制台错误

我的问题:我如何运行Enable-Migrations特定的项目 而不是整个解决方案?

谢谢您的帮助.

vb.net entity-framework package-managers asp.net-mvc-4

0
推荐指数
1
解决办法
2991
查看次数

禁止Keycloak REST API 403

我正在尝试使用keycloak REST API删除用户会话,但是却获取了403禁止的Http状态代码。我正在将令牌和cookie传递到标题中,如果我遗漏了一些东西,请告诉我。

static void logOut(String userId,KeycloakSecurityContext session){

        userId = "a12c13b7-fa2e-412f-ac8e-376fdca16a83";

        String url = "http://localhost:8081/auth/admin/realms/TestRealm/users/a12c13b7-fa2e-412f-ac8e-376fdca16a83/logout";
        HttpClient httpclient = HttpClients.createDefault();
        HttpPost httppost = new HttpPost(url);

        HttpResponse response;
        try {

            httppost.addHeader("Accept", "application/json");
            httppost.addHeader("Content-Type","application/json");
            httppost.addHeader("Cookie", "JSESSIONID=CABD8A135C74864F0961FA629D6D489B");
            httppost.addHeader("Authorization", "Bearer "+session.getTokenString());


            response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();

            System.out.println("entity :"+response.getStatusLine());

            if (entity != null) {
                String responseString = EntityUtils.toString(entity, "UTF-8");
                System.out.println("body ....."+responseString);
            }
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

keycloak keycloak-services

0
推荐指数
1
解决办法
5888
查看次数