我有像V [5000,1]这样的矢量,其值在1-10范围内 如何获得矩阵W [5000,10]
#include <iostream>
using namespace std;
int i,coins[8];
long long a;
long long solve(long long a){
if(a==0){
return 1;
}
if(a<0){
return 0;
}
long long k=0;
for(i=1; i<=6; i++){
k+=solve(a-coins[i]);
}
return k;
}
int main(){
coins[1]=1;
coins[2]=5;
coins[3]=10;
coins[4]=25;
coins[5]=50;
coins[6]=100;
cin>>a;
cout<<solve(a)<<endl;
return 0;
}
它的W在矢量V指示的列中具有“1”
答案 0 :(得分:1)
<强>解决方案强>
您可以使用以下方法:
W = zeros(length(v),10);
W(sub2ind(size(W),1:length(v),v'))=1;
<强>结果
v = [10,4,10,4,9]
W =
0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0