[ create a new paste ] login | about

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

C++, pasted on Nov 22:
#ifndef Strategy_h
#define Strategy_h

#include <vector>
#include <map>
#include <string>
#include <iostream>

/// Add Code Here -->
#include <algorithm>
/// <-- Add Code Here

using namespace std;
int relate[11000][11000];


///              user  to  item tabel               RecomdList            At most K Proposed Items           user size      item size
void Algorithm(vector<vector<double>> Table, vector<vector<int>> &RecomdList, const int K, const int user_size, const int item_size)
{

     /**
     TABLE
     
     Index           Content
     int User        double Rating
     int Item
     
     
     Format
     Table[User][Item]=Rating
     
     
     STRUCTURE
     
     Table
     | User1
     |        --- Item1   Item2   Item4   ...
     |             R1      R2      R3
     |
     | User2
     |        --- Item2   Item5   Item7   ...
     |             R4      R5      R6
     |
     | User3
     |        --- Item3   Item4   Item6   ...
     |             R4      R5      R6
     :
     :
     
     
     */

     /**
     RECOMDLIST
     
     Index          Content
     int User       int Item
     int Idx
     
     
     Format
     Table[User][Idx]=Item
     
     STRUCTURE
     
     RecomdList
     | User1
     |        ---    0      1       2     ...    K-1
     |            Item3   Item8   Item9   ...   Item?
     |
     | User2
     |        ---    0      1       2     ...    K-1
     |            Item4   Item1   Item3   ...   Item?
     |
     | User3
     |        ---    0      1       2     ...    K-1
     |            Item5   Item7   Item1   ...   Item?
     :
     :
     
     */

     /// Add Code Here -->
	
	//初始化物品間的關係
	
	
	for (int i = 0; i < 11000; i++) {
		for (int j = 0; j < 11000; j++) {
			relate[i][j] = 0;
		}
	}
	
	//觀察物品間關係,並存入relate[][]
	for (int x = 0; x < user_size; x++) {
		for (int y = 0; y < item_size; y++) {

			if (Table[x][y] != -1) {

				for (int j = y+1; j < item_size; j++) {

					if (Table[x][j] == 1) {
						relate[y][j] = relate[y][j] - 4;
					}else if (Table[x][j] == 2) {
						relate[y][j] == relate[y][j] - 2;
					}else if (Table[x][j] == 4) {
						relate[y][j] == relate[y][j] + 2;
					}else if (Table[x][j] == 5) {
						relate[y][j] == relate[y][j] + 4;
					}
						
				}
				
			}

		}
	}


	//鏡射 
	for (int i = 0; i < 11000; i++) {
		for (int j = i; j < 11000; j++) {
			relate[11000 - j][i] = relate[i][11000 - j];
		}
	}

	

	int i;
	int j;
	int max[11000][10];
	int min[11000][10];
	//找出前10名

	for (int t = 0; t < 10; t++) {//依序找出1~10

		for (int n = 0; n < 11000; n++) {//得過名就歸0
			for (int k = 0; k < t; k++) {
				relate[n][max[n][k]] = 0;
			}
		}

		for ( i = 0; i < 11000; i++) {

			for ( j = 0; j < 11000; j++) {
				for (int k = 0; k < 11000; k++) {

					if (relate[i][j] > relate[i][k]) {
						max[i][t] = j;
						min[i][t] = k;
					}
					else {
						max[i][t] = k;
						min[i][t] = j;
					}



				}
			}
		}
	}
	



	
	

	//開始推薦
	int remind[11000];
	for (int i = 0; i < 11000; i++) {
		remind[i] = 0;
	}

	
	for (int i = 0; i < user_size; i++) {
		int c = 0;
		while (c != 10) {
			for (int j = 0; j < item_size; j++) {
				if (Table[i][j] != -1) {
					remind[j] = Table[i][j];
					if (remind[j] < 3) {
						RecomdList[i][c] = max[j][c];
						c++;
						if (c == 10) {
							break;
						}
					}
					else {
						RecomdList[i][c] = max[j][c];
						c++;
						if (c == 10) {
							break;
						}
					}

				}
			}
			
					
		}
		
		
		
		
	}

	
	
		
     /// <-- Add Code Here
}

#endif /* Strategy_h */


Output:
1
2
Line 18: error: '>>' should be '> >' within a nested template argument list
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: