:: Не фоксом единым
Re: функция Val
ssa
Автор

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
of63
if a<1 or a==2:
return 0
if a==2:
return 0
Ничего странного не находишь?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/1 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
это я перенес нижний if в верхний or, но забыл удалить из текста то, что перенес, описка.
Ratings: 0 negative/0 positive
Re: функция Val
ABB

Сообщений: 149
Откуда: Санкт-Петербург
Дата регистрации: 21.10.2006
А как вам вариант ChapGPT
# Оптимизируем функцию isprost, чтобы исключить избыточные проверки
def isprost(a):
if a < 2:
return 0
for i in range(2, int(a**0.5) + 1):
if a % i == 0:
return 0
return 1
# Собственно задание - прием списка целых чисел (разделение - пробел)
print("Введите список чисел через пробел:")
d = input() # ввод списка чисел, например '1 2 3 4 5'
s = d.split() # массив слов ['1', '2', '3', '4', '5']
M = [int(a) for a in s if a.isdigit()] # исключаем избыточное преобразование строк в целые числа
k = sum(isprost(a) for a in M) # счетчик простых чисел - оптимизированная версия
if k == 0:
print("Нет простых чисел")
else:
print(f"Простых чисел: {k}")
Ratings: 0 negative/0 positive
Re: функция Val
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
of63
это я перенес нижний if в верхний or, но забыл удалить из текста то, что перенес, описка.
А разве 2 - не простое число?
Ratings: 0 negative/0 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
это математическая вольность, мтк - это четное число- значит не "простое". Математика тебе не близка?) ?

Ты ек интерем ?



Исправлено 1 раз(а). Последнее : of63, 01.04.23 18:43
Ratings: 0 negative/0 positive
Re: функция Val
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
of63
это четное число- значит не "простое"
Ты пользуешься своим собственным определением простого числа?

Тогда надо было привести его здесь:
Цитата:
задание: вернуть количество простых целых чисел
Ratings: 0 negative/0 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Дай же своё!

Это тема "схизматиков" (отступников от простого" )

начинающие математики с этого и начинали - с математики простых целых чисел

ru.wikipedia.org



Исправлено 1 раз(а). Последнее : of63, 01.04.23 20:20
Ratings: 0 negative/0 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
>А как вам вариант ChapGPT

Взял бы и сравнил, показал бы ЯВНО - разницу чел/нечел техногогий

crexyj c dfvb? djqyj - byntyhtcytw

()() Раз Вы не хотите начать войну, Надеюсь, в этом году, Ядереной зимы не будет, займусь своим



Исправлено 2 раз(а). Последнее : of63, 01.04.23 16:14
Ratings: 0 negative/0 positive
Re: функция Val
ssa
Автор

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
of63
кстати! о писанине!, прищел шкаольник, абсольтно не програме, вот научи промаи1ству, в частности питону (щзас моден), получилась нормалтная прогаЮ и питон, на 30% посимпатичнее стал...

А вот небольшая переработка сего шыдэура
# задание: вернуть количество простых целых чисел в их списке
# подпрограмма, возвращает True, если число A простое, и False в другом случае
def isprost(a: int) -> bool:
r: bool = False # возвращаемое значение: False - число A не простое, True - простое
if a<1 or a==2:
return r
for i in range(2, (a//2)+1): # I=2..int(A/3), // - деление с округлением до наименьшего целого
if (a % i == 0): # A делится на I без остатка - значит число A не простое
break # выходим из цикла, число A точно, не простое
else: # выход из for без break, значит A ни на что не делится
r = True # число A - простое
return r
# Собственно задание - прием списка целых чисел (разделение - пробел)
print("Введите список чисел через пробел:")
d:str = input() # ввод списка чисел, например '1 2 3 4 5'
M:list = [ 1 if isprost(int(a if a.isdigit() else '0')) else 0 for a in d.split() ]
print(f"Простых чисел: {sum(M)}")


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: функция Val
ABB

Сообщений: 149
Откуда: Санкт-Петербург
Дата регистрации: 21.10.2006
А вот улучшение от ChatGPT: :-p
Да, можно улучшить код следующими способами:

1. В функции isprost изменить условие `if a<1 or a==2` на `if a<2`, так как единица не считается простым числом.

2. В список M можно использовать функцию `map`, чтобы не писать цикл. Замените строку `M:list = [ 1 if isprost(int(a if a.isdigit() else '0')) else 0 for a in d.split() ]` на `M = list(map(lambda x: isprost(int(x)), d.split()))`.

3. Результат можно выводить в более понятном виде, например, разделив значения запятыми. Замените строку `print(f"Простых чисел: {sum(M)}")` на `print(f"Количество простых чисел: {sum(M)}. Они находятся на следующих позициях в списке: {', '.join([str(i+1) for i, x in enumerate(M) if x])}")`.

4. Для более сложных задач, связанных с обработкой списков, можно использовать библиотеку numpy, которая обладает более быстрыми и удобными методами. Однако для данной задачи это излишне.

Исправленный код будет выглядеть следующим образом:

```
# функция, возвращает True, если число A простое, и False в другом случае
def isprost(a: int) -> bool:
if a<2:
return False
for i in range(2, (a//2)+1):
if (a % i == 0):
return False
return True

# прием списка целых чисел (разделение - пробел)
print("Введите список чисел через пробел:")
d = input() # ввод списка чисел, например '1 2 3 4 5'

# проверка для каждого числа и запись результатов в список M
M = list(map(lambda x: isprost(int(x)), d.split()))
Ratings: 0 negative/1 positive
Re: функция Val
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
ssa
А вот небольшая переработка сего шыдэура
Логика цикла For неверна.

1) он вообще не отработает для числа 3, которое поэтому не будет считаться простым.
2) если первая проверка (деление на 2) даст остаток (R станет равным True), то число всегда будет считаться простым (но не все нечетные числа простые).

PS
2 - тоже простое число!



Исправлено 2 раз(а). Последнее : akvvohinc, 29.03.23 21:57
Ratings: 0 negative/0 positive
Re: функция Val
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
А вот улучшение от ChatGPT
А вот бот в этот раз выступил достойно.

Но на мой взгляд, получилось у него это случайно - для чисел 2 и 3 правильный результат получается неявно (без захода в цикл for).
Я бы так писать программу точно не стал - уж лучше эти 2 варианта описать явно, как для числа 1.



Исправлено 2 раз(а). Последнее : akvvohinc, 29.03.23 21:50
Ratings: 0 negative/0 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Ребята, как всегда, вы лучше всех! (других, куда я совался) ). За "шыдэур" - спс, это комплимент.

Про математическую "простоту" числа 0, 1, 2 не буду спорить, это удел теор. математики, я так и написал вначале проги isprost, про <1 (почему-то не ("<=")) и 2.

Про map: не понял пока, и вообще про оператор ":". При сдучае посмотрю (студента еще не выгнали, он копировал задачи, и успешно учился полгода копированием, а теперь - экзамен... хз, то у низ "болонская система" (сдай решение одним числом (? как это в программировании вышдлядит ?), и вдруг - экзамен! ) )
Ratings: 0 negative/0 positive
Re: функция Val
ssa
Автор

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
of63
Про map: не понял пока, и вообще про оператор ":". При сдучае посмотрю
И где ты его обнаружил? Если имеешь в виду
a: int
d: str
M: list
то это не выражения, это указания типа объекта:
a - целое число
d - строка
M - список

А вот про map() почитай. И про lambda. А':' тут не оператор и про него тут читать опять нечего.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Да, читал про... не проняло

Я поискал "map:", не нашел... моя вина, я пьян. видел глюки.


Про доп. ф-ии... я уже забыл про че...
Ratings: 0 negative/0 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Про лямбда=код (именно не поняте а определение в тексте программы) я не понимаю. Обьясни, если умеешь
Я смотрю на эти заявления со стороны ЯП и как кодировщика в "ОС", как это надо будет исполнять (или я как это буду представлять, в уме, при исполнении процессором и ОС )

Ссылку не по теме приложил, изв.



Исправлено 3 раз(а). Последнее : of63, 01.04.23 15:14
Ratings: 0 negative/0 positive
Re: функция Val
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
of63
Дай же своё!
У меня нет своего - я пользуюсь чужим, которому учили еще в школе.
Простое число - это натуральное число, имеющее два различных натуральных делителя - оно само и единица.

Начало списка простых чисел:
2, 3, 5, 7, 11, 13, 17, 19 ...



Исправлено 1 раз(а). Последнее : akvvohinc, 01.04.23 21:23
Ratings: 0 negative/0 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
забыл про че простое) и кончим т. Ферма про 2^большая степень +1 есть "простое число", про "АЕС256", это "прошло", относительно

ru.wikipedia.org - МТФ, нетривиальная



Исправлено 1 раз(а). Последнее : of63, 04.04.23 22:54
Ratings: 0 negative/0 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
akvvohinc
of63
Дай же своё!
У меня нет своего - я пользуюсь чужим, которому учили еще в школе.
Простое число - это натуральное число, имеющее два различных натуральных делителя - оно само и единица.

Начало списка простых чисел:
2, 3, 5, 7, 11, 13, 17, 19 ...

Ну, Серега... ты такой умный, что изобрел/постиг эту последовательность простых чисел?! )
Ratings: 0 negative/0 positive
Re: функция Val
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
и подумай (да-да), что это никому не нужно, это обьяснение
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 7 (Гостей: 7)

© 2000-2024 Fox Club 
Яндекс.Метрика