Monday, April 26, 2010

Locality Sensitive Hashing collection

code and sample data:

http://people.csail.mit.edu/gregory/download.html


Paper
http://www.mit.edu/~andoni/LSH/

Weakly Supervised Learning

Whose Vote Should Count More:
Optimal Integration of Labels from Labelers of
Unknown Expertise

http://mplab.ucsd.edu/~jake/OptimalLabeling.pdf

Monday, April 12, 2010

recursively print out a clockwise matrix element

Here is a program using recursive to print out a clockwise matrix element like this:
   1     2     3     4     5     6     7     8     9    10 
  36    37    38    39    40    41    42    43    44    11 
  35    64    65    66    67    68    69    70    45    12 
  34    63    84    85    86    87    88    71    46    13 
  33    62    83    96    97    98    89    72    47    14 
  32    61    82    95   100    99    90    73    48    15 
  31    60    81    94    93    92    91    74    49    16 
  30    59    80    79    78    77    76    75    50    17 
  29    58    57    56    55    54    53    52    51    18 
  28    27    26    25    24    23    22    21    20    19 


#include
#include
#include

// Print clockwise matrix element, in C
// www.VictorFang.com
// 20100412

// n : current recursive call's matrix size
// x, y: start pt in this round
// start: first value to set in the matrix
void setmatrix(int** m, int x, int y, int start, int n){

    int i,j;

    // for even number
    if(n<=0)
        return;

    // for odd number
    if(n==1){
        m[x][y] = start;
        return;
        }

   
    for(i = x; i
        m[y][i] = start++; // upper, to the right

    for(j = y; j < y+n-1; j++ )
        m[j][x+n-1] = start++; // right , downward

    for(i=x+n-1; i>x; i--)
        m[x+n-1][i] = start++; // lower, to the left

    for(j = y+n-1; j>y; j--)
        m[j][x] = start++; // left, upward

    // recursive call the next inner cycle
    setmatrix(m, x+1, y+1, start, n-2);

    }

void main() {

    FILE *fp;

    int n = 10; // size of matrix, 5x5;
    int i , j;

    int** matrix = (int **) malloc( n*sizeof(int *) );

    for(i = 0; i
        matrix[i] = (int *) malloc(n*sizeof(int));

    for(i = 0; i
        for(j = 0; j
            matrix[i][j] = 0;

    // do the job!
    setmatrix(matrix, 0 , 0, 1, n);

    char fstr[10] ;

    sprintf(fstr, "%d.txt", n);

    fp = fopen(fstr, "w");

    for(i = 0; i
            for(j = 0; j
                printf("%4d  ", matrix[i][j]);
                fprintf(fp, "%4d  ", matrix[i][j]);
                }
            printf("\n");
            fprintf(fp, "\n");
        }

    fclose(fp);
    printf("Result is written into file: %s\n", fstr);

    getchar();

    }