نمایش نتایج 1 تا 6 از 6

نام تاپیک: posting list

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1396
    پست
    35

    posting list

    سلام . یه پرژه دارم گفتن با posting list بنویس
    گشتم منبع فارسی نداشت
    کسی میدونه چیه یکم توضیح بده (لینک لیست رو میدونم اینو نه !فک کنم یجور جست و جو در لینک لیست باشه)

  2. #2
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: posting list

    سلام.
    بازم منم :))) خب اینجا سوت و کوره هیچکی نیست!

    posting list اسمش رو نمیدونستم ولی سرچ زدم متوجه شدم چیه. تو درس بازیابی اطلاعات ما بهش میگفتیم term-doc. بهش inverted index هم میگن!
    کاربردی که داشت برای جستجو یک سری کلمات در انبوهی از اسناد یا متون استفاده میشد. در مقابلش doc-term هم داشتیم.

    خب مفهومش اینه، ما برای هر کلمه (معمولا برای ریشه کلمات)، یک لیستی (میتونه هر نوع لیستی باشه) از id سند ها رو ذخیره میکنیم. این به ما کمک میکنه که نیاز نباشه برای جستجو هر کلمه ای تمام داکیومنت ها رو از اول بگردیم و از قبل چنین لیستی رو تهیه میکنیم.
    مثلا:
    "سامسونگ" -> 12,14,5323,23,4234,2342,3242
    "اندروید" -> 14,43,54,65,76,867

    که اعداد نشون دهنده شماره سند (پست) هستند.


    اگر میخواهیم بدونیم جمله "سامسونگ با سیستم عامل اندروید" رو سرچ کنیم، خب کلمه "با" رو حذف میکنیم و فرض کنیم چهار کلمه "سامسونگ"، "سیستم"، "عامل" و "اندروید" داریم. خب اگر اشتراک posting list این چهار کلمه رو محاسبه کنیم، لیستی بدست میاد که حاوی هر چهار کلمه است.

    مفهوم posting list همینه و چیز بیشتری نیست.

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1396
    پست
    35

    نقل قول: posting list

    نقل قول نوشته شده توسط vahid-p مشاهده تاپیک
    سلام.
    بازم منم :))) خب اینجا سوت و کوره هیچکی نیست!
    سلام دادا این از خوبیته
    آره همینه . لینک لیستا و ... رو آماده کردم فقط روش رو نمیدونستم که توضیح مفید رو دادید . ممنونم یه تنه آبروی برنامه نویس هستی

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1396
    پست
    35

    نقل قول: posting list

    فقط اون کد بازی 8پازل رو هم نوشتم - کپی پیست کنید نظرتونو بگید . مهمه برام .

    package Two;


    import java.io.BufferedWriter;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.lang.reflect.Array;
    import java.util.ArrayDeque;
    import java.util.ArrayList;
    import java.util.Queue;
    import java.util.Scanner;
    import java.util.concurrent.SynchronousQueue;


    import javax.naming.SizeLimitExceededException;
    import javax.swing.plaf.synth.SynthScrollPaneUI;




    public class BinarySearchTree {
    public static Node root;
    public BinarySearchTree(){
    this.root = null;
    }
    public static int cout = 0 , count1 = 0;
    public boolean find(String id){
    Node current = root;
    while(current!=null){
    if(current.data.equals(id)){
    return true;
    }else if(current.data.compareTo(id) > 0){
    current = current.left;
    }else{
    current = current.right;
    }
    }
    return false;
    }
    public void DO(String a){
    String arr[][] = new String [3][3];
    arr = toArr(a);
    int zero[] = findZero(arr);
    if(zero == null){
    System.out.println(a + " zero nadare !!");
    }
    else{
    toMatrixs(zero[0] , zero[1] , arr);
    }
    }
    public void toMatrixs(int i , int j , String arr[][]){

    if(j-1 >= 0){
    arr[i][j] = arr[i][j-1];
    arr[i][j-1] = "0";
    addArr2Tree(arr);
    arr[i][j-1] = arr[i][j];
    arr[i][j] = "0";
    }
    if(j+1 <= 2){
    arr[i][j] = arr[i][j+1];
    arr[i][j+1] = "0";
    addArr2Tree(arr);
    arr[i][j+1] = arr[i][j];
    arr[i][j] = "0";
    }
    if(i-1 >= 0){
    arr[i][j] = arr[i-1][j];
    arr[i-1][j] = "0";
    addArr2Tree(arr);
    arr[i-1][j] = arr[i][j];
    arr[i][j] = "0";
    }
    if(i+1 <= 2){
    arr[i][j] = arr[i+1][j];
    arr[i+1][j] = "0";
    addArr2Tree(arr);
    arr[i+1][j] = arr[i][j];
    arr[i][j] = "0";
    }
    }
    public void addArr2Tree(String arr[][]){
    String a = Arr2Str(arr);
    if(!find(a)){
    insert(a);
    count1++;
    }
    }
    public String Arr2Str(String arr[][]){
    String a = "";
    a += arr[0][0];
    a += arr[0][1];
    a += arr[0][2];
    a += arr[1][0];
    a += arr[1][1];
    a += arr[1][2];
    a += arr[2][0];
    a += arr[2][1];
    a += arr[2][2];
    return a;
    }


    public int[] findZero(String arr[][]){
    int result[] = new int [2] ;
    for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
    if(arr[i][j].equals("0"))
    {
    result[0] = i;
    result[1] = j;
    return result ;
    }
    }
    }
    return null;
    }
    public String [][] toArr(String a){
    String arr [][]= new String [3][3];
    arr[0][0] = a.charAt(0)+"";
    arr[0][1] = a.charAt(1)+"";
    arr[0][2] = a.charAt(2)+"";
    arr[1][0] = a.charAt(3)+"";
    arr[1][1] = a.charAt(4)+"";
    arr[1][2] = a.charAt(5)+"";
    arr[2][0] = a.charAt(6)+"";
    arr[2][1] = a.charAt(7)+"";
    arr[2][2] = a.charAt(8)+"";
    return arr;
    }
    public void Start(String data){
    // Node current = root;
    // while(current!=null){
    // DO(current.data);
    // if(current.data.equals("123456780")){
    // System.out.println("END");
    // break;
    // }
    // else if(current.data.compareTo(data) > 0){
    // current = current.left;
    // }else{
    // current = current.right;
    // }
    // }
    while(cout <1290000 && count1 < 1290000)
    {
    if(root == null) return;
    Queue<Node> queue = new ArrayDeque<Node>();
    queue.add(root);
    while(!queue.isEmpty()){
    Node current = queue.peek();
    DO(current.data);
    cout++;
    if(current.data.equals("123456780")){
    // System.out.println("END");
    cout = count1 = 1290000000;
    break;
    }
    if (current.left != null)
    queue.add(current.left);
    if (current.right != null){
    queue.add(current.right);
    }
    queue.poll();
    }
    }
    // System.out.println(cout +" : and : "+count1);


    }
    public void parent(String id){
    Node current = root;
    ArrayList<String> arr = new ArrayList<>();
    while(current!=null){
    arr.add(current.data);
    if(current.data.equals(id)){
    current = null;
    }else if(current.data.compareTo(id) > 0){
    current = current.left;
    arr.add("/");
    }else{
    current = current.right;
    arr.add("\\");
    }
    }
    //////// FILE


    String b = " ";
    for (int i = 0; i < arr.size(); i++) {
    if(arr.get(i) == "\\" || arr.get(i) == "/")
    System.out.print("\n"+" "+arr.get(i));
    else
    for (int j = 0; j < arr.get(i).length(); j++) {
    if(j%3 == 0)
    {
    System.out.println();
    System.out.print(" ");
    }
    System.out.print("["+arr.get(i).charAt(j)+"]");

    }
    }
    System.out.print("\n"+" Deep from root to goal : "+arr.size()/2);
    }


    // public boolean delete(String id){
    // Node parent = root;
    // Node current = root;
    // boolean isLeftChild = false;
    // while(current.data.compareTo(id) != 0){
    // parent = current;
    // if(current.data.compareTo(id) > 0){
    // isLeftChild = true;
    // current = current.left;
    // }else{
    // isLeftChild = false;
    // current = current.right;
    // }
    // if(current ==null){
    // return false;
    // }
    // }
    // //if i am here that means we have found the node
    // //Case 1: if node to be deleted has no children
    // if(current.left==null && current.right==null){
    // if(current==root){
    // root = null;
    // }
    // if(isLeftChild ==true){
    // parent.left = null;
    // }else{
    // parent.right = null;
    // }
    // }
    // //Case 2 : if node to be deleted has only one child
    // else if(current.right==null){
    // if(current==root){
    // root = current.left;
    // }else if(isLeftChild){
    // parent.left = current.left;
    // }else{
    // parent.right = current.left;
    // }
    // }
    // else if(current.left==null){
    // if(current==root){
    // root = current.right;
    // }else if(isLeftChild){
    // parent.left = current.right;
    // }else{
    // parent.right = current.right;
    // }
    // }else if(current.left!=null && current.right!=null){
    //
    // //now we have found the minimum element in the right sub tree
    // Node successor = getSuccessor(current);
    // if(current==root){
    // root = successor;
    // }else if(isLeftChild){
    // parent.left = successor;
    // }else{
    // parent.right = successor;
    // }
    // successor.left = current.left;
    // }
    // return true;
    // }
    //
    // public Node getSuccessor(Node deleleNode){
    // Node successsor =null;
    // Node successsorParent =null;
    // Node current = deleleNode.right;
    // while(current!=null){
    // successsorParent = successsor;
    // successsor = current;
    // current = current.left;
    // }
    // //check if successor has the right child, it cannot have left child for sure
    // // if it does have the right child, add it to the left of successorParent.
    //// successsorParent
    // if(successsor!=deleleNode.right){
    // successsorParent.left = successsor.right;
    // successsor.right = deleleNode.right;
    // }
    // return successsor;
    // }
    public void insert(String id){
    Node newNode = new Node(id);
    if(root==null){
    root = newNode;
    return;
    }
    Node current = root;
    Node parent = null;
    while(true){


    parent = current;
    if(id.compareTo(current.data) < 0){
    current = current.left;
    if(current==null){
    parent.left = newNode;
    return;
    }
    }else{
    current = current.right;
    if(current==null){
    parent.right = newNode;
    return;
    }
    }
    }
    }
    public void display(Node root){
    // if(root!=null){
    // display(root.left);
    // System.out.print(" " + root.data);
    // System.out.println();
    // display(root.right);
    // }
    if(root == null) return;
    Queue<Node> queue = new ArrayDeque<Node>();
    queue.add(root);
    try(BufferedWriter writer = new BufferedWriter(new FileWriter("C:/Users/Ali/Desktop/a.txt"))){

    while(!queue.isEmpty()){
    Node current = queue.peek();


    writer.write("["+current.data+"]");
    if (current.left != null)
    queue.add(current.left);
    if (current.right != null){
    queue.add(current.right);
    }
    queue.poll();
    }
    }
    catch (Exception e) {
    // TODO: handle exception
    }
    }
    public static void main(String arg[]){
    Scanner in = new Scanner(System.in);
    BinarySearchTree b = new BinarySearchTree();
    System.out.println("Pleas Enter Your Pazzle Numbers :");
    String input = in.next();
    b.insert(input);//023156478 <--in test shde 876543210 234516780 305248167 846712305 013725846 123450678 876543210 230456178
    double startTime = System.currentTimeMillis();
    b.Start(b.root.data);
    b.display(b.root);
    System.out.println(" PARENTS OF : 123456780 TIL : "+input);
    b.parent("123456780");
    double endTime = System.currentTimeMillis();
    double totalTime = (endTime - startTime)/1000;
    System.out.println("\n This Is Total Processed Time : "+totalTime);
    }
    }
    class Node{
    String data;
    Node left;
    Node right;
    public Node(String data){
    this.data = data;
    left = null;
    right = null;
    }
    }




    راستی استاد گفته بهتر بود از آ* استفاده میکردی منم نمیدونستم چیه ! الانم که فک نکنم بشه عوضش کرد

  5. #5
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: posting list

    خروجی هات یکم عجیبه.
    مسیری که به جواب میرسی رو بد نشون میده.

    تو همون تاپیک قبل مطرح کن چون به این تاپیک ارتباطی نداره جالب نیست در موردش اینجا بحث کنیم

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1396
    پست
    35

    نقل قول: posting list

    نقل قول نوشته شده توسط vahid-p مشاهده تاپیک
    خروجی هات یکم عجیبه.
    مسیری که به جواب میرسی رو بد نشون میده.

    تو همون تاپیک قبل مطرح کن چون به این تاپیک ارتباطی نداره جالب نیست در موردش اینجا بحث کنیم
    درستش کردم . مشکل در چاپ بود فقط . در ضمن اینجا که فقط منم و شما کسی نیست که بد باشه .
    خیلی ممنونم در ضمن

تاپیک های مشابه

  1. سوال: ایجاد drop down list با Ajax با متد post
    نوشته شده توسط مهرنژاد در بخش PHP
    پاسخ: 2
    آخرین پست: سه شنبه 23 دی 1393, 11:51 صبح
  2. سوال در مورد List Box
    نوشته شده توسط H_r_m در بخش VB.NET
    پاسخ: 3
    آخرین پست: سه شنبه 22 مهر 1393, 21:56 عصر
  3. دليل true بودن auto post back در drop down list
    نوشته شده توسط gm.sara در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: شنبه 11 آبان 1387, 08:39 صبح
  4. اشکال در مخفی کردن برنامه در Task List win XP
    نوشته شده توسط houshmand در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: پنج شنبه 13 آذر 1382, 21:57 عصر
  5. Post زمانبر
    نوشته شده توسط Hidarneh در بخش T-SQL
    پاسخ: 4
    آخرین پست: چهارشنبه 17 اردیبهشت 1382, 16:25 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •