loading...
ادیکام - اموزش ساخت بازی و برنامه نویسی و سورس - Adicom
adicom بازدید : 532 شنبه 28 شهریور 1394 نظرات (0)

سلام

سورس مسئله ژوزفوس (Josephus problem) با جاوا(java)

مساله ژوزفوس یک مساله نظری درعلوم کامپیوتر و ریاضیات است. افرادی را درنظر بگیرید که دایره وار ایستادهاند و منتظر اعدام هستند.بعد از آنکه اولین نفر اعدام می شود، تعداد مشخصی از افراد رد شده و یک نفر دیگر اعدام می شود. سپس دوباره به همان تعداد، افراد پرش شده و نفر بعد کشته می شود. این فرایند حذف، دور دایره ( که با برداشتن افراد کشته شده کوچک و کوچکتر می گردد)ادامه می یابد تا زمانی که تنها یک نفر باقی می ماند که آزاد می شود. مطلوب، یافتن جایگاهی در دایره اولیه است که شما با قرار گرفتن در آنجا نجات خواهید یافت.

این کد برحسب تعداد و پرش شماره فردی که بیرون میماند را مشخص میکند.

 

import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.*;

class Test
{
	public static void main (String[] args) throws java.lang.Exception
	{
	    Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int temp = n;
        int m = sc.nextInt();
        boolean[] arr = new boolean[n];
        int index = -1;
        while(n>1) {
            for(int i=0; i<m; i++){
                index += 1;
                if(index>temp-1) {
                    index -= temp;
                }
                while(arr[index]==true) {
                    index += 1;
                    if(index>temp-1) {
                        index -= temp;
                    }
                }
            }
            arr[index] = true;
            n--;
        }
        for(int i=0; i<temp; i++) {
            if(arr[i]==false) {
                System.out.print(" " + (i+1));
            }
        }
        sc.close();
	}
}

 

adicom بازدید : 116 یکشنبه 25 مرداد 1394 نظرات (0)

سلام

بازم یک مسئله درخواستی کاربران!

سورس حل یک عبارت ریاضی پارانتز گذاری شده با پی اچ پی (PHP) می باشد

این کد یک رشته که عبارت ریاضی را شامل میشود را میگیرد و جواب را محاسبه میکند

نکنه : این عبارت فقط شامل جمع و تفریق میباشد

یا حق

 

function compute_expression($expr) {
    $arr = array();
    for($i=0; $i<strlen($expr); $i++) {
        if($expr[$i]==')') {
            $a = array_pop($arr);
            $opr = array_pop($arr);
            $b = array_pop($arr);
            if($opr == '+')
                $b += $a;
            else 
                $b -= $a;
            array_pop($arr);
            $arr[] = $b;
        } else {
            $arr[] = $expr[$i];
        }
    }
    while(count($arr)>1) {
        $a = array_shift($arr);
        $opr = array_shift($arr);
        $b = array_shift($arr);
        if($opr == '+')
            $b += $a;
        else 
            $b -= $a;
        $arr[] = $b;
    }
    echo array_pop($arr);
} 

 

adicom بازدید : 128 شنبه 24 مرداد 1394 نظرات (0)

سلام

به درخواست یک از کاربران

سورس پیدا کردن بزرگترین زیر رشته palindrome از رشته با پی اچ پی (PHP) قرار دادم.

palindrome یعنی که یک کلمه برعکس هم بکنی میشه همان کلمه مثل کمک

که این کد بزرگترین زیر رشته از palindrome رو از یک رشته پیدا میکنه.

 

 

function longest_palind($s) {
    $str = "";
    $t = true;
    $temp = '';
    for($i=0; $i<strlen($s)-1; $i++) {
        for($j=strlen($s)-1; $j>=$i+1; $j--) {
            if($s[$i] == $s[$j]) {
                $t = true;
                for($k=$i,$l=$j; $k<=$l; $k++,$l--) {
                    if($s[$k] != $s[$l]) {
                        $t = false;
                        break;
                    }
                }
                if($t==true) $temp = substr($s, $i, $j-$i+1);
            }
            if(strlen($temp)>=strlen($str)) $str=$temp; 
        }
    }
    echo $str;
}



adicom بازدید : 496 یکشنبه 28 تیر 1394 نظرات (0)

سلام

امروز من سورس الگوریتم قرعه کشی دوره ای به زبان سی پلاس پلاس (c++) قرار دادم.

برای مثال شما 4 نفر رو دارید میخواهند با هم به صورت دوره ای مسابقه بدهند!

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

a-b  c-d

a-c  b-d

a-d  b-c

این کد اینکارو انجام میده

امید وارم به دردتون بخوره

#include <iostream>
#include <string>
#include <vector>
using namespace std;

bool in_array(vector<int> *players_done, int player);
void roundRobin(int num) {
	num = (num > 0) ? (int)num : 4;
	num += num % 2;
	int opponent = 0;
	for (int round = 1; round < num; round++) {
		vector<int> players_done;

		for (int player = 1; player < num; player++) {

			if (!in_array(&players_done, player)) {
				// opponent.
				opponent = round - player;
				opponent += (opponent < 0) ? num : 1;

				if (opponent != player) {
					if ((player + opponent) % 2 == 0 ^ (player < opponent)) {
						// ^ = xor
						players_done.push_back(player);
						players_done.push_back(opponent);
					}
					else {
						players_done.push_back(opponent);
						players_done.push_back(player);
					}					
				}
			}
		}

		if (round % 2 == 0) {
			opponent = (round + num) / 2;
			players_done.push_back(num);
			players_done.push_back(opponent);
		}
		else {
			opponent = (round + 1) / 2;
			players_done.push_back(opponent);
			players_done.push_back(num);
		}


		for (int i = 0; i < players_done.size(); i+=2) {
			cout << players_done.at(i) << "-" << players_done.at(i + 1) << " ";
		}
		cout << endl;
		players_done.clear();
	}
}

bool in_array(vector<int> *players_done, int player) {
	for (int i = 0; i < players_done->size(); i++) {
		if (players_done->at(i) == player)
			return true;
	}
	return false;
}

int main() {
	int n = 6;
	roundRobin(n);

	system("PAUSE");
	return 0;
}

تعداد صفحات : 6

درباره ما
اموزش ساخت بازی و اموزش برنامه نویسی سورس پی اچ پی سورس سی پلاس پلاس جاوا سورس اندروید c++ php java android اموزش سی پلاس پلاس اموزش ساخت بازی کیوت qt
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آمار سایت
  • کل مطالب : 60
  • کل نظرات : 12
  • افراد آنلاین : 1
  • تعداد اعضا : 1
  • آی پی امروز : 18
  • آی پی دیروز : 14
  • بازدید امروز : 86
  • باردید دیروز : 17
  • گوگل امروز : 1
  • گوگل دیروز : 0
  • بازدید هفته : 324
  • بازدید ماه : 948
  • بازدید سال : 4,444
  • بازدید کلی : 66,138