[ create a new paste ] login | about

Link: http://codepad.org/AfvBdYKJ    [ raw code | fork ]

Plain Text, pasted on Oct 20:
import java.util.Random;

public final class VectorOfInt {
	private final int[] _elm;
	
	public VectorOfInt(final int size) {
		_elm = new int[size];
	}
	
	public final void setElement(final int index, final int value) {
		_elm[index] = value;
	}
	
	public final int getElement(final int index) {
		return _elm[index];
	}
	
	public final int innerProduct(final VectorOfInt peer) {
		int result = 0;
		for (int i = 0; i < _elm.length; i++) {
			result += _elm[i] * peer._elm[i];
		}
		return result;
	}
	
	public final int convolution(final VectorOfInt peer) {
		int result = 0;
		for (int i = 0; i < _elm.length; i++) {
			result += _elm[i] * peer._elm[_elm.length - i - 1];
		}
		return result;
	}
	
	public final void add(final VectorOfInt peer) {
		for (int i = 0; i < _elm.length; i++) {
			_elm[i] += peer._elm[i];
		}
	}
	
	@Override
	public String toString() {
		if (_elm.length == 0)
			return "()";
		StringBuilder sb = new StringBuilder();
		sb.append('(').append(_elm[0]);
		for (int i = 1; i < _elm.length; i++) {
			sb.append(", ").append(_elm[i]);
		}
		
		return sb.append(')').toString();
	}
	
	public static void main(String[] args) {
		VectorOfInt vectorA= new VectorOfInt(5);
		VectorOfInt vectorB= new VectorOfInt(5);
		VectorOfInt incVector= new VectorOfInt(5);
		
		/* forループを用いて、各ベクトルの各要素に
		 * setElementを用いて適当な値を設定
		 */
		Random r = new Random();
		for (int i = 0; i < 5; i++) {
			vectorA.setElement(i, r.nextInt(10));
			vectorB.setElement(i, r.nextInt(10));
			incVector.setElement(i, r.nextInt(10));
		}
		
		/* printfメソッドにより各ベクトルを表示*/
		System.out.printf("ベクトルA=%s ベクトルB=%s ベクトルincVector=%s\n", vectorA, vectorB, incVector);
		
		/* vectorAにincVectorを加算*/
		vectorA.add(incVector);
		
		/* vectorAを表示*/
		System.out.printf("ベクトルA=%s\n", vectorA);
		
		/* vectorAとvectorBの内積、畳込みを表示*/
		System.out.printf("内積=%d 畳込み=%d\n", vectorA.innerProduct(vectorB), vectorA.convolution(vectorB));
	}
}



Create a new paste based on this one


Comments: