PHP의 고전적인 알고리즘 질문의 차이점
PHP의 알고리즘은 매우 강력하다고 할 수 있습니다. 어떤 사람들은 PHP와 같은 프로그래밍 언어를 배우고 싶다면 논리적 사고가 좋아야 한다고 말합니다. 그렇다면 모든 프로그래머는 다음 질문을 살펴봐야 합니다!
5명이 사과 한 다발을 훔쳐 다음날 전리품을 나누기로 계획했습니다. 저녁에 한 남자가 나가서 모든 야채와 과일을 5등분했는데, 나머지 1등분은 나무에 있는 원숭이에게 던지고 1/5을 먼저 숨겼습니다. 놀랍게도 나머지 4명도 같은 생각을 했고, 모두 첫 번째 사람처럼 5등분하여 남은 조각을 원숭이에게 던져 1/5을 훔쳤습니다. 다음 날, 모두가 전리품을 나누어 갖고, 그것도 5등분하여 하나를 더 원숭이에게 던졌습니다. 마지막 사람이 몫을 얻었습니다. 질문: 사과가 몇 개 있나요?
for ($i = 1; ; $i++) { if ($i%5 == 1) { //第一个人取五分之一,还剩$t $t = $i - round($i/5) - 1; if($t % 5 == 1) { //第二个人取五分之一,还剩$r $r = $t - round($t/5) - 1; if($r % 5 == 1) { //第三个人取五分之一,还剩$s $s = $r - round($r/5) - 1; if($s % 5 == 1) { //第四个人取五分之一,还剩$x $x = $s - round($s/5) - 1; if($x % 5 == 1) { //第五个人取五分之一,还剩$y $y = $x - round($x/5) - 1; if ($y % 5 == 1) { echo $i; break; } } } } } } }
원숭이 무리가 원을 그리며 줄을 서고 1, 2,...,n에 따라 번호가 매겨져 있습니다. 그런 다음 첫 번째부터 세기 시작하고, m 번째까지 세고, 원 밖으로 쫓아내고, 뒤에서 세기 시작하고, m 번째까지 세고, 쫓아내고... 끝까지 이런 식으로 계속합니다. 이제 원숭이는 한 마리밖에 남지 않았는데, 그 원숭이를 왕이라고 부릅니다. 이 과정을 시뮬레이션하여 m, n을 입력하고 마지막 왕의 수를 출력하는 프로그래밍이 필요합니다.
function king($n, $m){ $monkeys = range(1, $n); $i=0; $k=$n; while (count($monkeys)>1) { if(($i+1)%$m==0) { unset($monkeys[$i]); } else { array_push($monkeys,$monkeys[$i]); unset($monkeys[$i]); } $i++; } return current($monkeys); } $a = king(5, 2); var_dump($a);
하노이 타워(하노이 타워라고도 함)는 인도의 고대 전설입니다. 세상을 창조한 브라흐마가 세 개의 다이아몬드 막대를 사원에 남겨두었는데, 첫 번째 것은 64개의 둥근 금 조각으로 덮여 있었고, 나머지는 다른 것보다 작았습니다. 절에서 승려들은 막대기를 하나씩 옮겨가며 보조용으로 사용할 수 있지만 한 번에 하나만 움직일 수 있고 큰 막대기는 움직일 수 없다고 규정되어 있었습니다. 작은 것 위에 놓이세요. 답을 찾으려면 직접 계산을 실행해 보세요. 마지막에 있는 프로그램을 확인하세요. 18446744073709551615라는 엄청난 숫자(원반이 이동한 횟수)에 직면하면 스님들이 평생을 바쳐도 금원반의 이동을 완성하는 것은 불가능할 것 같다.
나중에 이 전설은 하노이 타워 게임으로 발전했습니다.
1 세 개의 극 A, B, C가 있습니다. A폴에는 여러 개의 접시가 있습니다
2. 접시는 한 번에 하나씩 옮기고, 작은 접시는 큰 접시 위에만 쌓을 수 있습니다
3. 접시를 A폴에서 C폴로 모두 옮기세요
. 간단합니다. 이동 규칙에 따라 금 조각을 한 방향으로 이동하면 됩니다.
예를 들어, 3차 하노이 타워의 이동은 A→C, A→B, C입니다. →B, A→C, B→A, B→C, A→C
또한 하노이 탑 문제는 프로그래밍의 고전적인 재귀 문제이기도 합니다.
function hanoi($n,$x,$y,$z){ if($n==1){ echo 'move disk 1 from '.$x.' to '.$z."\n"; }else{ hanoi($n-1,$x,$z,$y); echo 'move disk '.$n.' from '.$x.' to '.$z."\n"; hanoi($n-1,$y,$x,$z); } } hanoi(3,'A','B','C');
PHP를 사용하여 버블 정렬 및 빠른 정렬 알고리즘을 설명합니다. 객체는 배열일 수 있습니다.
//对数组冒泡排序 function bubble_sort($array){ $count = count($array); if ($count <= 0) return false; for($i=0; $i<$count; $i++){ for($j=$count-1; $j>$i; $j–){ if ($array[$j] < $array[$j-1]){ $tmp = $array[$j]; $array[$j] = $array[$j-1]; $array[$j-1] = $tmp; } } } return $array; }
function quick_sort($array) { if (count($array) <= 1) return $array; $key = $array[0]; $left_arr = array(); $right_arr = array(); for ($i=1; $i<count($array); $i++){ if ($array[$i] <= $key) $left_arr[] = $array[$i]; else $right_arr[] = $array[$i]; } $left_arr = quick_sort($left_arr); $right_arr = quick_sort($right_arr); return array_merge($left_arr, array($key), $right_arr); }
PHP를 사용하여 순차 검색 및 이진 검색 알고리즘을 설명합니다. 순차 검색은 효율성을 고려해야 합니다. 객체는 순서가 지정된 배열일 수 있습니다.
//使用二分查找数组中某个元素 function bin_sch($array, $low, $high, $k){ if ($low <= $high){ $mid = intval(($low+$high)/2); if ($array[$mid] == $k){ return $mid; }elseif ($k < $array[$mid]){ return bin_sch($array, $low, $mid-1, $k); }else{ return bin_sch($array, $mid+1, $high, $k); } } return -1; }
PHP 내장 함수를 호출할 수 있는 2차원 배열 정렬 알고리즘 함수를 작성하세요. 보편성이 있어요
function array_sort($arr, $keys, $order=0) { if (!is_array($arr)) { return false; } $keysvalue = array(); foreach($arr as $key => $val) { $keysvalue[$key] = $val[$keys]; } if($order == 0){ asort($keysvalue); }else { arsort($keysvalue); } reset($keysvalue); foreach($keysvalue as $key => $vals) { $keysort[$key] = $key; } $new_array = array(); foreach($keysort as $key => $val) { $new_array[$key] = $arr[$val]; } return $new_array; }
만드셨나요? 아직 해보지 않았다면 PHP 알고리즘을 사용하고 위의 방법을 따라 이 질문을 완료하세요.
위 내용은 PHP의 고전적인 알고리즘 질문의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

IIS 및 PHP는 호환 가능하며 FastCGI를 통해 구현됩니다. 1. IIS 구성 파일을 통해 .php 파일 요청을 FastCGI 모듈로 전달합니다. 2. FASTCGI 모듈은 PHP 프로세스를 시작하여 요청을 처리하여 성능과 안정성을 향상시킵니다. 3. 실제 응용 프로그램에서는 구성 세부 사항, 오류 디버깅 및 성능 최적화에주의를 기울여야합니다.

Ouyi Exchange 앱은 Apple 휴대 전화 다운로드를 지원하고, 공식 웹 사이트를 방문하고, "Apple Mobile"옵션을 클릭하고, App Store에 입력하고 설치하고, Cryptocurrency 거래를 수행하려면 등록 또는 로그인합니다.

공식 Gate.io 앱은 다음과 같은 방법으로 다운로드 할 수 있습니다. 1. 공식 웹 사이트 Gate.io를 방문하여 다운로드하십시오. 2. App Store 또는 Google Play에서 "Gate.io"를 검색하여 다운로드하십시오. 안전을 보장하려면 공식 채널을 통해 다운로드하십시오.

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

다양한 복잡한 거래 도구 및 시장 분석을 제공합니다. 이 회사는 100 개 이상의 국가를 다루고 있으며 평균 일일 파생 상품 거래량은 300 억 달러 이상이며 300 개가 넘는 거래 쌍과 200 배의 레버리지를 지원하며, 기술 강도가 강하고, 글로벌 사용자 기반, 전문적인 거래 플랫폼, 안전한 스토리지 솔루션 및 풍부한 거래 쌍을 제공합니다.

OKX 및 Coinbase와 같은 준수 플랫폼에 우선 순위가 부여되어 다중 인자 검증이 가능하며 자산 셀프 사용량은 의존성을 줄일 수 있습니다. 1. 규제 라이센스와의 교환을 선택하십시오. 2. 2FA의 화이트리스트와 인출을 켜십시오. 3. 하드웨어 지갑 또는 자기 사용을 지원하는 플랫폼을 사용하십시오.

참깨 오픈 도어는 암호 화폐 거래에 중점을 둔 플랫폼입니다. 사용자는 공식 웹 사이트 또는 소셜 미디어를 통해 포털을 얻을 수있어 액세스 중에 SSL 인증서 및 웹 사이트 컨텐츠의 진위가 확인되도록 할 수 있습니다.

AI는 작곡가 사용을 최적화하는 데 도움이 될 수 있습니다. 특정 방법에는 다음이 포함됩니다. 1. 종속성 관리 최적화 : AI는 종속성을 분석하고 최상의 버전 조합을 권장하며 충돌을 줄입니다. 2. 자동화 된 코드 생성 : AI는 모범 사례를 준수하는 composer.json 파일을 생성합니다. 3. 코드 품질 향상 : AI는 잠재적 인 문제를 감지하고 최적화 제안을 제공하며 코드 품질을 향상시킵니다. 이러한 방법은 기계 학습 및 자연어 처리 기술을 통해 구현되어 개발자가 효율성과 코드 품질을 향상시킬 수 있도록 도와줍니다.
