Мабуть, так! У три легких кроки.
Крок 1
Нехай f ( n ) позначає функцію підрахунку простих чисел (кількість простих значень менше або дорівнює n ).
Визначте цілу послідовність s ( n ) наступним чином. Для кожного натурального числа n ,
- Ініціалізуйте t до n .
- Поки t не є простим і не 1, замініть t на f ( t ) і повторіть.
- Кількість ітерацій s ( n ).
Ітераційний процес гарантовано закінчується, оскільки f ( n ) < n для всіх n .
Розглянемо для прикладу n = 25. Ми ініціалізуємо t = 25. Оскільки це не є простим і не 1, обчислюємо f (25), що дорівнює 9. Це стає новим значенням для t . Це не є простим, ані 1, тому ми продовжуємо: f (9) - 4. Ми продовжуємо знову: f (4) - 2. Оскільки це простий, ми зупиняємося тут. Ми зробили 3 ітерації (від 25 до 9, потім до 4, потім до 2). Таким чином s (25) дорівнює 3.
Перші 40 членів послідовності такі. Послідовність відсутня в OEIS.
0 0 0 1 0 1 0 2 2 2 0 1 0 2 2 2 0 1 0 3 3 3 0 3 3 3 3 3 0 3 0 1 1 1 1 1 0 2 2 2
Крок 2
Давши непарне додатне ціле число N , побудуйте масив N × N (матрицю), намотавши кінцеву послідовність s (1), s (2), ..., s ( N 2 ), щоб утворити квадратну зовнішню спіраль . Наприклад, для N = 5 спіраль дорівнює
s(21) s(22) s(23) s(24) s(25)
s(20) s(7) s(8) s(9) s(10)
s(19) s(6) s(1) s(2) s(11)
s(18) s(5) s(4) s(3) s(12)
s(17) s(16) s(15) s(14) s(13)
або, замінюючи значення,
3 3 0 3 3
3 0 2 2 2
0 1 0 0 0
1 0 1 0 1
0 2 2 2 0
Крок 3
Представляйте масив N × N у вигляді зображення із сірою кольоровою картою або за допомогою іншої кольорової карти на ваш смак. Карта повинна бути поступовою, щоб порядок чисел відповідав деякому візуально очевидному порядку кольорів. Наведені нижче тестові приклади показують деякі приклади кольорових карт.
Змагання
Давши непарне додатне ціле число N , створіть зображення, описане вище.
Правила
Спіраль повинна бути назовні, але може бути за годинниковою стрілкою або проти годинникової стрілки і може починати рухатися праворуч (як у наведеному вище прикладі), вліво, вниз або вгору.
Масштаби горизонтальної та вертикальної осей не повинні бути однаковими. Крім того, мітки осі, кольорова смуга та подібні елементи необов’язкові. Поки спіраль добре видно, зображення є дійсним.
Зображення можна виводити будь-яким із стандартних засобів . Зокрема, зображення може відображатися на екрані, або створюватися графічний файл або виводитися масив значень RGB. Якщо виводите файл або масив, будь ласка, опублікуйте приклад того, як він виглядає при відображенні.
Засоби введення та формат гнучкі, як зазвичай . Може бути надана програма або функція . Стандартні лазівки заборонені .
Виграє найкоротший код у байтах.
Тестові справи
Наступні зображення (натисніть для повного дозволу) відповідають кілька значень N . Використовується спіраль, спрямована на годинник, як вперше, як у прикладі вище. Зображення також ілюструють кілька дійсних кольорових карт.
imshow
робить
imshow
так це.
s(n)
можна подати в якусь графічну функцію / пакет без зміни (я думаю, щоimshow
в matplotlib міг би це вчинити, наприклад), це прийнятна форма виводу?