
Сообщение отредактировано: DruiD -
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
DruiD |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Дано число n . Возможно ли записать его в виде суммы 2 квадратов натуральных чисел?
![]() Сообщение отредактировано: DruiD - |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Любое натуральное число, дающее в остатке 1 при делении на 4, можно представить в виде суммы двух квадратов. Проверяй, подходит ли данное тебе число под это условие... |
мисс_граффити |
![]()
Сообщение
#3
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
я думаю, тут задача на другое...
именно на циклы - то есть на перебор. кроме того, условие достаточное, но не необходимое. (у нас же не сказано, что числа разные. так что 8=2^2+2^2 по условию задачи подходит, а по этому условию - нет, т.к. остаток равен 0. или даже 20 - остаток равен 0, но 4^2+2^2=20. или 26. или 40... ряд можно продолжить ) что-то типа Код for j:=1 to trunc(sqrt(i/2)) do begin b:=i-sqr(j); if ((b<>0) and (frac(sqrt(b))=0)) then fl:=true; {ну или сразу вывести что-то типа "можно представить"} end; i - это заданное число. Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
кроме того, условие достаточное, но не необходимое. (у нас же не сказано, что числа разные. так что 8 ... ряд можно продолжить .. до бесконечности ![]() что-то типа Во-первых, в условии нет указания, что одно из чисел не должно быть нулем, так что проверка b на равенство нулю не нужна. Во-вторых, проверка типа real на равенство нулю не годится... ![]() Я бы был проще и вообще постарался избежать извлечений корня. Типа так: Код var N,i,j:integer; begin Write('Number? ');ReadLn(N); for i:=1 to N do for j:=i to N do if N=i*i+j*j then WriteLn(N,' = ',i,'^2 + ',j,'^2'); WriteLn('Over'); ReadLn; end. Код, конечно, крайне неоптимальный. Первое, что можно сделать - запоминать значение i*i. Затем - лучше ограничить циклы. Можно и квадраты запоминать в массив.. Вот первый шаг по оптимизации: Код var N,i,ii,j,m:integer; begin Write('Number? ');ReadLn(N); m:=N div 2+1; for i:=1 to m do begin ii:=i*i; for j:=i to m do if N=ii+j*j then WriteLn(N,' = ',i,'^2 + ',j,'^2'); end; WriteLn('Over'); ReadLn; end. Думаю, остается еще громадный простор для полета мысли.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата Во-первых, в условии нет указания, что одно из чисел не должно быть нулем, так что проверка b на равенство нулю не нужна Ну, тогда и циклfor i:=1 to m do beginЛучше начинать не с 1 (по i), а с нуля, ибо если с 1-цы, то теряем представление, например, 9 = 0^2 + 3^2 |
мисс_граффити |
![]()
Сообщение
#6
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Во-первых, в условии нет указания, что одно из чисел не должно быть нулем, так что проверка b на равенство нулю не нужна. Во-вторых, проверка типа real на равенство нулю не годится... ![]() 1. Цитата Возможно ли записать его в виде суммы 2 квадратов натуральных чисел? ![]() в срочном порядке ищу учебник по математике за 5 класс... 2. опять же - всегда была уверена, что разность 2 целых чисел есть целое число.... оптимизировать можно до бесконечности... не спорю. если условие поставленно именно так ("можно ли представить", а не "как можно представить"), по-хорошему, надо выскакивать из цикла после обнаружения первой же пары чисел. Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Юля, не торопись искать этот учебник. В русской математической школе 0 - НЕ является натуральным числом. А во французской, например, 0 - такое же натуральное число, как и 1... (Хотя это, по-моему, уже выходит за пределы обсуждения даной темы)...
|
мисс_граффити |
![]()
Сообщение
#8
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Юля, не торопись искать этот учебник. В русской математической школе 0 - НЕ является натуральным числом. А во французской, например, 0 - такое же натуральное число, как и 1... (Хотя это, по-моему, уже выходит за пределы обсуждения даной темы)... что-то с русской школой не все так однозначно... "натуральные числа - это те числа, которые используются при счете". правда, в другом месте: "целые числа - это натуральные числа, противоположные им и 0". ...что-то вместо того, чтобы отправить человека читать FAQ, развиваем огромное обсуждение. пора останавливаться ![]() -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Я всегда считал (как меня учили), что натуральные числа начинаются с единицы. Видимо, я недопрочел условие задачи.
Но я не хочу сказать, что решение неправильное, просто в таких задачах мне всегда интересно сделать минимальный код, выглядящий красиво - вот я и повелся.. ![]() Но, согласись, что с точки зрения использования циклов решение с перебором квадратов все же предпочтительнее.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
мисс_граффити |
![]()
Сообщение
#10
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Но, согласись, что с точки зрения использования циклов решение с перебором квадратов все же предпочтительнее.. ![]() с этим я не спорю ![]() просто как-то задели 2 необоснованные претензии... ![]() -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
мисс_граффити |
![]()
Сообщение
#11
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Проверяй, подходит ли данное тебе число под это условие... ой.... оно мало того, что не необходимое, так еще и не достаточное 21/4=5 ост.1 1+20 4+17 9+12 16+5 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
мисс_граффити
![]() ![]() *Пошел за букварем... |
мисс_граффити |
![]()
Сообщение
#13
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
мисс_граффити ![]() ![]() *Пошел за букварем... вот и я о том, что никакое. 21 под это условие подходит (остаток, как положено), а представить не получается ![]() -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Sorry, это касаемо только ПРОСТЫХ нечетных чисел... Теорема Ферма, понимаешь
![]() Цитата Теорема 2. Для того чтобы нечетное простое число было представимо в виде суммы двух квадратов, необходимо и достаточно, чтобы оно при делении на 4 давало в остатке 1. |
![]() ![]() |
![]() |
Текстовая версия | 23.03.2025 5:44 |