小编and*_*and的帖子

在HashMap中使用keySet()方法

我有一个方法遍历一个板中的可能状态并将它们存储在HashMap中

void up(String str){
  int a = str.indexOf("0");
  if(a>2){
   String s = str.substring(0,a-3)+"0"+str.substring(a-2,a)+str.charAt(a-3)+str.substring(a+1);
   add(s,map.get(str)+1);
   if(s.equals("123456780")) {
    System.out.println("The solution is on the level  "+map.get(s)+" of the tree");

        //If I get here, I need to know the keys on the map
       // How can I store them and Iterate through them using 
      // map.keySet()?

   }
  }
Run Code Online (Sandbox Code Playgroud)

}

我对这组钥匙很感兴趣.我应该怎么做才能打印出来?

HashSet t = map.keySet() 被编译器拒绝了

LinkedHashSet t = map.keySet()
Run Code Online (Sandbox Code Playgroud)

java hashmap hashset linkedhashset

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

了解Haskell的过滤器

我知道Haskell的过滤器是一个高阶函数(意味着一个函数,它接受另一个函数作为参数),它通过一个列表检查哪个元素满足某个布尔条件.

我不太明白它的定义:

filter:: (a->Bool)->[a]->[a]
filter p [] = []
filter p (x:y) | p x = x:filter p y
               | otherwise = filter p y
Run Code Online (Sandbox Code Playgroud)

我知道如果我将一个空列表传递给该函数,它只会返回一个空列表,但是如何读取最后两行?

haskell list filter

5
推荐指数
2
解决办法
5511
查看次数


c ++中向量<someClass>的setter函数

我有以下课程:

class Vertex {

public: float X;
        float Y;
        float Z;

Vertex (float first, float second, float third){
          X=first;
          Y=second;
          Z=third;
    }

};


class Obj {


  vector<Vertex>vertexCoordinates;

  vector<vector<int>> faces;

  vector <vector<float>> faceNormals;

  vector <vector<float>> faceCenters; 

  string objName; 

  int vertexCount, faceCount, edgeCount;

  float maxX, minX, maxY, minY, maxZ, minZ, dx, dy, dz;


    setVertexCoordinates(vector <Vertex> vertexCoordinatesP) {

          vertexCoordinates = vertexCoordinatesP; //??
         // How should the assignment be defined? 

    }

};
Run Code Online (Sandbox Code Playgroud)

我需要在这里创建一个复制构造函数吗?超负荷运营商=VertexObj

c++ operator-overloading copy-constructor

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

Qt + OpenGL入门

我想基于2010版OpenGL的Superbible with Qt开发项目.我想做一些事情,比如移动灯光,改变颜色,激活/停用纹理等等.简单的东西.到目前为止我发现的Qt文档非常令人难以置信.我在哪里可以找到适合我简单需求的简单教程?

opengl qt

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

BigInteger上的OutOfMemoryError

我正在为BigIntegers编写一个波兰表示法计算器(只是*,^和!)而且OutOfMemoryError我正在减去BigInteger.ONE要使阶乘工作的行,为什么?

package polish_calculator;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.Stack;

public class Main {
    static BigInteger factorial(BigInteger number){
        Stack <BigInteger> factorialStack = new Stack<BigInteger>();
        factorialStack.push(number);

        while (!number.equals(BigInteger.ONE)){ //load the stack
            factorialStack.push(number.subtract(BigInteger.ONE)); // here's the error
        }

        BigInteger result = BigInteger.ONE;

        while(!factorialStack.empty()){ // empty and multiply the stack
            result.multiply(factorialStack.pop());
        }

        return result;
    }


    public static void main(String[] args) throws IOException {

        BigInteger testFactorial = new BigInteger("12");
        System.out.println(factorial(testFactorial));
        Stack <String> stack = new Stack<String>();
        BufferedReader …
Run Code Online (Sandbox Code Playgroud)

java biginteger out-of-memory

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

从头开始实现BigInteger的乘法(并确保它是O(n ^ 2))

作为家庭作业,我正在实施Karatsuba的算法,并针对大整数的小学式O(n ^ 2)乘法算法进行基准测试.

我猜这里我唯一的选择是将数字带到它们的字节数组表示中,然后从那里开始工作.

好吧,我被困在这里...当使用*运算符时,我不知道如果数字溢出一个字节乘法或添加一个进位,我将如何检测/纠正.有任何想法吗?

public static BigInteger simpleMultiply(BigInteger x, BigInteger y){

        //BigInteger result = x.multiply(y);

        byte [] xByteArray = x.toByteArray();
        byte [] yByteArray = y.toByteArray();

        int resultSize = xByteArray.length*yByteArray.length;

        byte [][] rowsAndColumns = new byte[resultSize][resultSize];

        for (int i =0; i<xByteArray.length;i++)
           for (int j=0; j<yByteArray.length;j++){


               rowsAndColumns[i][j] = (byte )(xByteArray[i] * yByteArray[j]); 
               // how would I detect/handle carry or overflow here?               
           }

        return null;
    }
Run Code Online (Sandbox Code Playgroud)

java bytearray biginteger

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

Matlab,"赋值比非单例下标有更多非单例rhs维度"

我正在尝试使用label2rgb生成RGB标签切片并使用它来更新RGB卷,如下所示:

    labelRGB_slice=label2rgb(handles.label(:,:,handles.current_slice_z), 'jet', [0 0 0]);


    handles.labelRGB(:,:,handles.current_slice_z) = labelRGB_slice;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

**Assignment has more non-singleton rhs dimensions than non-singleton subscripts**

Error in Tesis_GUI>drawSeedButton_Callback (line 468)
        handles.labelRGB(:,:,handles.current_slice_z) = labelRGB_slice;
Run Code Online (Sandbox Code Playgroud)

调试时我得到这个:

size(labelRGB_slice)

ans =

   160   216     3

K>> size(handles.labelRGB(:,:,handles.current_slice_z) )

ans =

   160   216
Run Code Online (Sandbox Code Playgroud)

我像这样声明handle.labelRGB:

handles.labelRGB = zeros(dim(1), dim(2), dim(3), 3);
Run Code Online (Sandbox Code Playgroud)

所以我不明白指数差距.

如何使切片分配工作?

matlab

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

numpy - 计数相等的数组

我想计算分割大矩阵后遇到的等矩阵的数量.

mat1 = np.zeros((4, 8))

split4x4 = np.split(mat1, 4)
Run Code Online (Sandbox Code Playgroud)

现在我想知道split4x4中有多少相等的矩阵,但是collections.Counter(split4x4)会抛出错误.是否有内置的方式在numpy这样做?

numpy python-2.7

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

Numpy - 考虑抵消分割矩阵

给定一个m x n矩阵我想把它分成a x a任意偏移的矩形(a = 3或a = 4)矩阵(最小偏移= 1,最大偏移=块大小),就像Mathematica的Partition函数一样:

例如,给定的4×4矩阵A

1  2  3  4 
5  6  7  8
9  10 11 12
13 14 15 16
Run Code Online (Sandbox Code Playgroud)

如果我给3 x 3块并且offset = 1,我想获得4个矩阵:

1  2  3 
5  6  7 
9  10 11

2  3  4 
6  7  8
10 11 12

5  6  7 
9  10 11
13 14 15

6  7  8
10 11 12
14 15 16
Run Code Online (Sandbox Code Playgroud)

如果矩阵AA …

numpy python-2.7

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