Skip to content

Algorithmf&data structures 4 - #9

Open
SRytv wants to merge 12 commits into
masterfrom
Algorithmf&Data_Structures_4
Open

Algorithmf&data structures 4#9
SRytv wants to merge 12 commits into
masterfrom
Algorithmf&Data_Structures_4

Conversation

@SRytv

@SRytv SRytv commented Oct 7, 2018

Copy link
Copy Markdown
Owner

No description provided.

@Dzhoker1 Dzhoker1 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Оставил комментарии по коду

#
import sys

def fact_recurs(N):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

С всеми реализациями кода хорошо.
Единственный вопрос: Почему эта задача? В условии же написано, что надо брать задачи из домашнего задания первых трех уроков. Ужасная невнимательность.


#============================================================================================================
# вычисление 500! рекурсивной функцией
#C:\Users\Serg_\PycharmProjects\Algorithms&Data_Structures\Lesson_4>python -m cProfile -s time task_1.py r 500

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А что насчёт timeit? Через консоль мы использовали как раз его, а не cProfile

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

К сожалению при попытках использования timeit в консоле постоянно получал ошибку, хотя, как приведено здесь я находился непосредственно в директории, где размещен файл. Такая ошибка повторялась постоянно, поэтому пришлось воспользоваться cProfile.
C:\Users\Serg_>cd "C:\Users\Serg_\PycharmProjects\Algorithms&Data_Structures\Lesson_4"

C:\Users\Serg_\PycharmProjects\Algorithms&Data_Structures\Lesson_4>python -m timeit -n 40 -s "task_2" task_2
Traceback (most recent call last):
File "C:\Temp\Portable Python 3.2.5.1\App\lib\timeit.py", line 315, in main
r = t.repeat(repeat, number)
File "C:\Temp\Portable Python 3.2.5.1\App\lib\timeit.py", line 223, in repeat
t = self.timeit(number)
File "C:\Temp\Portable Python 3.2.5.1\App\lib\timeit.py", line 195, in timeit
timing = self.inner(it, self.timer)
File "", line 3, in inner
task_2
NameError: global name 'task_2' is not defined

C:\Users\Serg_\PycharmProjects\Algorithms&Data_Structures\Lesson_4>dir
Том в устройстве C имеет метку System
Серийный номер тома: 7ACC-B759

Содержимое папки C:\Users\Serg_\PycharmProjects\Algorithms&Data_Structures\Lesson_4

07.10.2018 19:20

.
07.10.2018 19:20 ..
07.10.2018 19:23 .idea
12.09.2018 13:49 3 351 SRHw03_normal.py
07.10.2018 19:20 8 113 task_1.py
07.10.2018 18:49 3 377 task_2.py
07.10.2018 19:18 5 260 task_2b.py
07.10.2018 17:48 1 131 task_3.py
05.10.2018 12:55 764 ДЗ.txt
7 файлов 21 996 байт
3 папок 905 012 408 320 байт свободно

C:\Users\Serg_\PycharmProjects\Algorithms&Data_Structures\Lesson_4>

#SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 3-4: truncated \UXXXXXXXX escape
#============================================================================================================
#
#Оценить сложность по результатам выполненых измеренрий не представляется возможным,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:-(

#print(primes)
primes_counter = 0
#print([i for i in primes if i != 0])
for i in range(len(primes)):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Этот блок кода стоило интегрировать в функцию.
Стал её тестировать и понял, что выдаёт не те результаты. Потом обратил внимание на костыль (назовём вещи своими именами), который всё исправляет.

#print('{: >2d}е простое число = {: >2d}'.format(nth_prime, primes[i]))

#Все оценки проводились при отключенном выводе на экран!!
#C:\Users\Serg_\PycharmProjects\Algorithms&Data_Structures\Lesson_4>python -m cProfile -s time task_2.py 25

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вопрос по timeit аналогично задаче 1

# 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
#

# Не представляю, что можно здесь проанализирова!? Видимо слишком простая функция. Даже увеличение

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А, вот и оно. Когда прочитаете этот комментарий, попробуйте просто для себя проанализировать другим инструментом, как я на уроке )))

# Примечание: Результаты анализа сохранить в виде комментариев в файле с кодом.
# Данный файл содержит решене без решета Эратосфена.
#
def find_prime(up_to):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По условию сюда передаётся порядковый номер простого числа, а у вас номер вбит в код в 9-й строке. Перепутали, наверное.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants