« Back to profile of red_mercury
-
Python
حدسية كولاتز 3ن+1
حدسية كولاتز خاصة بالأعداد الصحيحة الطبيعية غير المعدومة، وهي عبارة عن متتالية كما يلي: 1. إذا كان العدد زوجيا، نقسمه على 2. 2. إذا كان العدد فرديا، نضربه في 3 ونضيف له 1. البرنامج يقوم بتطبيق العملية السابقة على العدد المدخل حتى الواحد ويقوم بحفظ مصفوفة لكل رقم حتى الواحد ويحفظها في ملف مثال على محتوى الملف [1000, 500, 250, 125, 376, 188, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1, 1] أو مثال أبسط [25, 76, 38, 19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 1]
21:48 Aug 08 2010 | Tags : بايثون,http://setcode.net/term,رياضيات,http://setcode.net/term,http://setcode.net/term,3n+1,http://setcode.net/term,http://setcode.net/term,حدسية,كولاتز,
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Written by: red mercury
#3n+1.py
number_from_user = input('Enter number to prosess : ')
file_numbers = open('numbers.txt', 'w')
def process_number(number = 1):
matrix_number = []
matrix_number.append(number)
while True:
if number == 1:
matrix_number.append(number)
break
elif number % 2.0 == 0:
number = number / 2
matrix_number.append(number)
else:
number = (number * 3) + 1
matrix_number.append(number)
return matrix_number
while number_from_user > 1:
x = str(process_number(number_from_user))
file_numbers.write(x + '\n')
number_from_user = number_from_user - 1
file_numbers.close()
print 'Done'