분기 분기 트리 rebus 솔루션입니다. 질문 검토

이 메서드를 제어된 열거형이라고 부르겠습니다.

프로그램 task3_8c;

for k:=1 ~ 4 do

for t:=2 ~ 9 do

만약 k<>그럼

for o:=0 ~ 9 do

만약 (케이<>o) 및 (t<>오) 그럼

kto:=k*100+t*10+o;

kot:=k*100+o*10+t;

전류:=t*100+o*10+k;

if kto+kot=tok then writeln(kto,"+",kot,"=",tok);

이러한 알고리즘은 8-10개의 중첩 루프가 있는 경우에도 매우 빠르게 작동합니다.

질문 검토:

1. 중첩 루프는 i와 같은 동일한 변수를 사용할 수 있습니까?

2. WHILE에 FOR 또는 FOR에 REPEAT와 같이 서로 다른 루프를 중첩할 수 있습니까?

독립 작업을 위한 작업:

1. 오래된 작업. 100 루블에 소 100 마리를 사야한다면 황소 한 마리가 10 루블, 소 한 마리가 5 루블, 송아지 한 마리가 50 달러 (0.5 루블)이면 몇 마리의 황소, 소, 송아지를 살 수 있습니까?

2. 주어진 자연수 n. 1에서 n까지의 모든 숫자에 대해 다음을 찾으십시오.

a) 약수의 수 b) 짝수 약수의 합.

3. 다음 숫자 퍼즐의 모든 솔루션을 찾으십시오.

a) 할머니 + 할아버지 + TURP = 이야기 (4 솔루션)

b) 소 + 풀 + 착유자 = 우유(2 용액)

c) ALYONKA + IVAN + 염소 = 이야기 (1 솔루션)

d) 가지 + 가지 + 줄기 = 나무(3가지 솔루션)

e) GATE + GRASS = FOOTBALL(3가지 솔루션)

학습 "주기"

M4_블록 #3

강의 주제 :

중첩 루프.

수업의 목적:

1. 다양한 유형의 사이클 사용에 대한 지식을 통합합니다.


2. 중첩 루프로 알고리즘을 해결하는 기술을 습득하십시오.

제1중학교 리다

문제를 해결하려면 여러 개의 중첩된 순환 구조를 사용해야 하는 경우가 많습니다. 이러한 구성을 중첩 루프라고 합니다.

몇 가지 예를 살펴보겠습니다.

주어진 자연수에스. 면적이 다음과 같은 모든 직사각형을 찾는 프로그램을 작성해야 합니다.에스변은 자연수로 표현됩니다.

프로그램 task3_6;

var s, a, b:longint;

writeln("s를 입력하세요"); readln(s);

for a:=1 to s do

for b:=1 to s do

if a*b=s then writeln ("sides ",a," and ",b);

이 문제는 한 주기만 사용하여 해결할 수 있습니다. 그것을하는 방법에 대해 생각하십시오.

주어진 자연수N, . 보다 작은 모든 자연수를 얻습니다.N, 자릿수의 제곱의 합은 다음과 같습니다..

프로그램 task3_7;

var n, m, i, a, sum, cif:longint;

writeln("n과 m을 입력하세요"); readln(n, m);

for i:=1 to n do

합계:=합계+sqr(cif);

합=m이면 쓰기(i," ");

주어진 숫자 퍼즐의 모든 솔루션을 찾으십시오. 각 문자는 숫자에 해당합니다. 또한 동일한 문자는 동일한 숫자, 다른 문자, 다른 숫자에 해당합니다.

여기에는 문자가 세 개뿐이므로 솔루션에 대해 세 개의 중첩 루프를 작성하고 세 자리 숫자를 추가하는 모든 옵션을 살펴보는 것으로 충분합니다.

프로그램 task3_8a;

vark, t, o, kto, kot, tok:longint;

for k:=0 ~ 9 do

for t:=0 ~ 9 do

for o:=0 ~ 9 do

kto:=k*100+t*10+o;

kot:=k*100+o*10+t;

전류:=t*100+o*10+k;

만약 (케이<>t) 및 (k<>o) 및 (t<>o) 그리고 (kto+kot=tok) 그러면

writeln(kto,"+",kot,"=",tok);

이 알고리즘에서 사이클 바디는 10∙10∙10=1000번 실행되었습니다. (말할 것이다 알고리즘 복잡성 =1000)

그러나 더 복잡한 퍼즐을 풀기 위해 8-10개의 중첩 루프를 작성해야 하는 경우 이러한 완전한 열거가 오랫동안 작동합니다.

1≤k≤4, t≥2인 경우 이 알고리즘을 약간 단순화할 수 있습니다.

for k:=1 ~ 4 do

for t:=2 ~ 9 do

for o:=0 ~ 9 do

이제 알고리즘의 복잡도는 4∙8∙10=320입니다. 간단한 외형 수정으로 속도가 3배 증가했습니다.

그러나이 알고리즘도 최적이 아닙니다. 보다 케이=2 및 =2 프로그램은 10가지 옵션을 모두 통과합니다. 영형. 그러한 경우에 케이=주기 영형전혀 해서는 안됩니다.

우리 중 누가 퍼즐에 익숙하지 않습니까? 이 재미있는 암호는 젊은이부터 노인까지 모두에게 친숙합니다. 퍼즐에서 단어는 일련의 그림과 문자 및 숫자를 포함한 다양한 기호를 사용하여 암호화됩니다. "rebus"라는 단어는 라틴어에서 "사물의 도움으로"로 번역됩니다. 수수께끼는 15세기에 프랑스에서 시작되었으며, 1582년에 이 나라에서 출판된 최초의 인쇄된 퍼즐 모음은 Etienne Taburo에 의해 편집되었습니다. 그 이후로 시간이 지남에 따라 수수께끼 문제를 컴파일하는 기술은 다양한 기술로 풍부해졌습니다. 수수께끼를 풀기 위해서는 무엇이 그려져 있는지 아는 것뿐만 아니라 그림과 기호의 상대적인 위치를 고려하는 것도 중요하며 이는 실제로 달성됩니다. 퍼즐을 구성하는 무언의 규칙이 있으며 동일한 규칙에 따라 퍼즐을 푸는 것이 더 쉽고 규칙은 다음과 같습니다.

퍼즐 해결을 위한 일반 규칙

수수께끼의 단어나 문장은 그림이나 기호의 형태로 묘사되는 부분으로 나누어집니다. 수수께끼는 항상 왼쪽에서 오른쪽으로 읽으며 덜 자주 위에서 아래로 읽습니다. 공백과 문장 부호는 읽지 않습니다. 수수께끼의 그림에 그려진 것은 일반적으로 단수로 주격으로 읽지 만 예외가 있습니다. 여러 개체를 그린 경우 화살표는 전체 이미지의 어느 부분이 이 수수께끼에 사용되는지 나타냅니다. 하나의 단어가 추측되지 않고 문장 (속담, 캐치프레이즈, 수수께끼) 명사 외에도 동사와 다른 품사가 있습니다. 일반적으로 이것은 작업에 지정됩니다(예: "수수께끼 추측"). 수수께끼에는 항상 해결책이 있어야 합니다. 답의 모호성은 수수께끼의 조건에 명시되어야 합니다. 예: "이 퍼즐에 대한 두 가지 솔루션을 찾으십시오." 하나의 수수께끼에 사용되는 기술의 수와 그 조합은 제한이 없습니다.

사진에서 퍼즐을 푸는 방법

그들은 주격 단수에서 왼쪽에서 오른쪽으로 모든 객체의 이름을 순차적으로 지정합니다.

답변: 경험 추적 = 추적기

답변: 황소 상자 = 섬유

답: 얼굴의 눈 = 주변

개체를 거꾸로 그린 경우 이름을 오른쪽에서 왼쪽으로 읽어야 합니다. 예를 들어 "고양이"가 그려지면 "현재"를 읽어야 하고 "코"가 그려지면 "꿈"을 읽어야 합니다. 때로는 읽기 방향이 화살표로 표시됩니다.

답: 꿈

rebus에 그려진 개체는 종종 "초원"과 "필드", "다리"와 "발", "나무"와 "오크"또는 "자작 나무", "노트"및 "미"와 같이 다르게 호출 될 수 있습니다. , 그런 경우 수수께끼에 해결책이 있도록 적절한 단어를 선택해야합니다. 이것은 퍼즐을 풀 때 가장 중요한 어려움 중 하나입니다.

답: 참나무 라바 \u003d 참나무 숲

쉼표로 퍼즐을 푸는 방법

때로는 묘사된 항목의 이름 전체를 사용할 수 없으며 단어의 시작 또는 끝에 있는 하나 이상의 문자를 삭제해야 합니다. 그런 다음 쉼표가 사용됩니다. 쉼표가 그림의 왼쪽에 있으면 이름에서 첫 번째 문자가 삭제되고 오른쪽에 있으면 마지막 문자가 삭제됩니다. 얼마나 많은 쉼표의 가치가 있으므로 많은 문자가 버려집니다.

답: 호볼 k = 햄스터

예를 들어 쉼표 3개와 "피더"가 그려져 있으면 "파리"만 읽으면 됩니다. "sail"과 2개의 쉼표가 그려져 있으며 "steam"만 읽으면 됩니다.

답: 우산 p = 패턴

답: li sa to por gi = 부츠

문자로 퍼즐을 푸는 방법

이전, 위, 위, 아래, 뒤, at, y, in과 같은 문자 조합은 원칙적으로 퍼즐에 표시되지 않지만 문자와 그림의 해당 위치에서 식별됩니다. 문자와 문자 조합 from, to, from, from, to, 는 표시되지 않지만 문자나 객체의 관계 또는 방향이 표시됩니다.

두 개의 개체 또는 두 개의 문자 또는 문자와 숫자가 서로 그려지는 경우 전치사 "in"을 추가하여 해당 이름을 읽습니다. 예: "v-o-yes", "v-o-seven" 또는 "no-v-a". 예를 들어 "8"대신 "seven-in-o"를 읽을 수 있고 "water"- "yes-in-o"대신 다른 읽기가 가능합니다. 그러나 그러한 단어는 존재하지 않으므로 그러한 단어는 수수께끼에 대한 해결책이 아닙니다.

답변: v-o-yes, v-o-seven, v-o-lx, v-o-ro-n, v-o-mouth-a

하나의 개체 또는 기호가 다른 개체 아래에 그려지면 "on", "above"또는 "under"를 추가하여 해독합니다. 의미에 따라 전치사를 선택해야 합니다. 예: "fo-na-ri", "under-at-shka", "above-e-wa".

답변: for-on-ri, under-at-shka, over-e-wa

문자나 물체 뒤에 다른 문자나 물체가 있으면 "for"를 추가하여 읽어야 합니다. 예: "Ka-za-n", "za-ya-ts".

답변: for-i-c

한 문자가 다른 문자 옆에 있거나 기대어 있으면 "y" 또는 "k"를 추가하여 읽습니다. 예: "L-u-k", "d-u-b", "o-k-o".

답: 양파, 참나무

문자 또는 음절이 다른 문자 또는 음절로 구성된 경우 "from"을 추가하여 읽으십시오. 예: "from-b-a", "b-from-he", "out-of-y", "f-from-ik".

답변: 오두막, 들소

편지 전체에 다른 문자나 음절이 쓰여 있으면 "by"를 추가하여 읽습니다. 예: "po-r-t", "po-l-e", "po-i-s". 또한 "by"는 다리가 있는 하나의 문자가 다른 문자, 숫자 또는 개체 위로 지나갈 때 사용할 수 있습니다.

답: 폴란드

답변: 벨트, 필드

물체가 그려지고 그 옆에 글자가 쓰여진 다음 글자가 지워지면이 글자를 단어에서 버려야 함을 의미합니다. 줄이 그어진 글자 위에 다른 글자가 있으면 줄이 그어진 글자를 교체해야 함을 의미합니다. 때때로 이 경우 문자 사이에 등호가 표시됩니다.

답: 라즈

답: 라즈베리 z 몽 \u003d 레몬

숫자로 퍼즐을 푸는 방법

그림 위에 숫자가 있으면 주제 이름에서 글자를 읽는 순서에 대한 힌트입니다. 예를 들어 4, 2, 3, 1은 이름의 네 번째 글자를 먼저 읽은 다음 두 번째 글자를 읽은 다음 세 번째 글자를 먼저 읽는 것을 의미합니다.

답: 브리그

숫자에 줄을 그을 수 있습니다. 즉, 단어에서 이 순서에 해당하는 문자를 버려야 합니다.

답: 말 ak LUa bo mba = 콜럼버스

아주 드물게 문자의 동작은 수수께끼에 사용됩니다. 실행, 파리, 거짓말, 이러한 경우 현재 시제의 3 인칭 동사를이 문자의 이름에 추가해야합니다. 예를 들어 "y -실행”.

메모로 퍼즐을 푸는 방법

수수께끼에서 종종 "do", "re", "mi", "fa"와 같은 음표 이름에 해당하는 개별 음절이 해당 음표와 함께 표시됩니다. 때때로 일반적인 단어 "노트"가 사용됩니다.

퍼즐 구성에 사용되는 메모


답변: 콩, 빼기

퍼즐을 푸는 방법에 대한 규칙을 숙지하면 퍼즐을 쉽게 풀 수 있을 뿐만 아니라 직접 퍼즐을 만드는 방법도 배울 수 있습니다.

  1. 수수께끼의 그림에 표시된 모든 이름은 명목상으로 만 읽습니다.
  2. 수수께끼의 그림은 둘 이상의 이름을 가질 수 있습니다. 예: 다리와 발, 눈과 눈; 또는 이미지는 일반 또는 개인 이름을 가질 수 있습니다(새는 일반 이름이고 수탉, 비둘기, 갈매기는 개인 이름입니다).
  3. 쉼표(반전 여부에 관계없이)는 단어에서 극단적인 문자를 제거해야 함을 나타냅니다. 쉼표가 그림 앞에 있으면 단어가 먼저, 쉼표가 그림 뒤에 있으면 단어의 끝부터. 제거할 문자 수는 쉼표 수에 해당합니다.
  4. 취소선 문자 - 이러한 문자는 단어에서 제거해야 합니다. 줄이 그어진 문자가 반복되면 모두 제거됩니다. 금전 등록기
  5. 취소선 숫자는 단어에서 해당 문자를 제거해야 함을 나타냅니다.
  6. 문자 사이의 등호(A=E)는 모든 문자 A를 E로 바꿔야 함을 나타냅니다. 같음 1=E는 단어의 첫 번째 문자만 바꿔야 함을 나타냅니다.
  7. 문자 사이의 화살표(E -> B)도 문자의 해당 대체를 나타냅니다.
  8. 그림 위의 숫자 1,2,7,5는 주어진 단어에서 문자 1,2,7,5를 가져와 숫자가 있는 순서대로 구성해야 함을 나타냅니다. 탱크
  9. 거꾸로 된 그림은 단어를 오른쪽에서 왼쪽으로 읽어야 함을 나타냅니다. (고양이 - 현재)
  10. 그림 위의 왼쪽을 가리키는 화살표는 단어가 해독된 후 거꾸로 읽어야 함을 나타냅니다. 고양이
  11. 수수께끼에서 분수를 사용하면 "ON"(나누기 ON)으로 풀립니다. 분모가 2인 분수가 수수께끼에 사용되면 "FLOOR"(절반)로 해결됩니다. 선반 플래시
  12. 퍼즐을 컴파일할 때 메모가 사용됩니다. 메모를 결정하려면 메모가 있는 라인만 중요합니다. 검은 점(메모).
  13. 문자 "O" 안에는 "YES"라는 음절이 있으며 V-O-YES로 나타납니다. "물". "YES-V-O"로도 읽을 수 있습니다. 가장 합리적인 옵션이 선택됩니다. 할 것이다
  14. 사진이 다른 사진 위에 있으면 "OVER", "ON", "UNDER"로 읽습니다(의미에 따라 다름). 현재의 파인애플
  15. 다른 문자로 구성된 문자는 전치사 "FROM"으로 읽습니다. 예를 들어 문자 "B"에서 문자 "A"를 만든 다음 "B"에서 "A"(IZBA)를 얻습니다.오두막
  16. 다른 글자 위에 있는 글자는 "PO"로 읽습니다.필드
  17. 다른 글자 뒤에 묘사된 글자는 전치사 "FOR" 또는 "BEFORE"로 읽습니다. 가장 합리적인 옵션이 선택됩니다. 토끼
  18. 기호 "+"는 전치사 "K"를 의미합니다. 합리적인 옵션을 선택해야 합니다. 창문 고치
  19. 숫자 사이의 이중 화살표는 이 숫자 아래의 문자를 서로 바꾸어야 함을 의미합니다.
  20. 그림 사이의 X 표시 "="는 "NOT"로 읽어야 합니다(예: "C"는 "G"와 같지 않음).

자, 이제 퍼즐을 풀 준비가 되셨나요?

P.S.: 퍼즐을 풀기 위한 다른 규칙을 알고 있거나 기존 규칙에 대한 설명이 부정확한 경우 아래 댓글에 적어주세요.

(제이 코멘트 온)