def __init__(self, count=6, digitals=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]):
super(datagenerator, self).__init__()
self._count = count
self._digitals = digitals
def get_digitals(self):
return self._digitals
def generate_numbers(self):
獲取定長的由數字組成的數,例如:
_count = 6, 返回所有的可能數字組合,對應的數,對應的逆序數
5 -> [([1, 2, 3, 4, 5], 12345, 54321), [1, 2, 3, 4, 6], 12346, 64321), ...]
all = list(itertools.permutations(self._digitals, self._count))
return [(x,
self._generate_numbers_from_digit_list(x),
self._generate_numbers_from_digit_list(x, true))
for x in all if len(set(x)) == self._count and x[-1] != 0]
def _generate_numbers_from_digit_list(self, digit_list, revert=false):
由乙個數字列表返回對應的數,例如:
[1, 2, 3, 4, 5], false -> 12345
[1, 2, 3, 4, 5], true -> 54321
return sum([digit * 10**index for index, digit in enumerate(digit_list if not revert else digit_list[::-1])])
class numberattr(object):
numberattr:數屬性
def __init__(self, number):
super(numberattr, self).__init__()
self._number = number
def get_digit_by_pos(self, pos):
獲取數某個位置上的數字
1234, 1 -> 4
4321, 1 -> 1
number = self._number
while pos:
(div, mod) = divmod(number, 10)
number = div
pos -= 1
return mod
def get_number_bits(self):
獲取數共有多少位
奧數 python python 來做奧數題
來做幾道小學奧數題 紅花映綠葉 春 葉綠映花紅 我們熱愛科學 學 好好好好好好 少年早立志向 少年早立志向 有志何懼少年 學生 好學生 三好學生 2004 資料發生器原始碼 data generator.py encoding utf8 import itertools class datagene...
C 解某道小學奧賽題
小學奧賽題 黑板上寫著乙個形如8888 88的數,每次擦掉乙個末位數,把前面的數乘2,然後再加上剛才擦掉的數,對所得的新數繼續操作,最後得到的數是多少?code by 大師 羅莊 class program console.write tem.tostring 輸出 8 console.read 小...
C 解某道小學奧賽題
小學奧賽題 黑板上寫著乙個形如8888 88的數,每次擦掉乙個末位數,把前面的數乘2,然後再加上剛才擦掉的數,對所得的新數繼續操作,最後得到的數是多少?code by 大師 羅莊 class program console.write tem.tostring 輸出 8 console.read 小...