import time
import hashlib
print()
print("This program trusts you will enter integers: ")
############## data #################
l1 = ["0","1","2","3","4","5","6,","7","8","9"]
l2 = ["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59"]
############# declarations ##############
l = []
n = 0 
x = 0
x_2 = 0
x_sum = 0
sqr_sum = 0
dataset = []
############ I/O files ################
filename = input("Enter name for .txt file: ")
filename = filename + ".txt"
outfile = open(filename, "w")
################# Random number function #####################3
def random(range):

################# First option ####################
	result = int(time.time_ns() % range)

################# Second option ###################
#	p = "Random numbers are hard! Especially odds, but also a fair mix."
#	q = str(range)
#	m = hashlib.sha256()
#	c = 0
#		m.update(p)
#		m.update(q)
#	c_letters = m.hexdigest()
#	c = 0
#	result = 0
#	while(c < len(c_letters)):
#		if(c_letters[c] == "0"):
#			result = result + c*16*0
#		if(c_letters[c] == "1"):
#			result = result + c*16*1
#		if(c_letters[c] == "2"):
#			result = result + c*16*2
#		if(c_letters[c] == "3"):
#			result = result + c*16*3
#		if(c_letters[c] == "4"):
#			result = result + c*16*4
#		if(c_letters[c] == "5"):
#			result = result + c*16*5
#		if(c_letters[c] == "6"):
#			result = result + c*16*6
#		if(c_letters[c] == "7"):
#			result = result + c*16*7
#		if(c_letters[c] == "8"):
#			result = result + c*16*8
#		if(c_letters[c] == "9"):
#			result = result + c*16*9
#		if(c_letters[c] == "a"):
#			result = result + c*16*10
#		if(c_letters[c] == "b"):
#			result = result + c*16*11
#		if(c_letters[c] == "c"):
#			result = result + c*16*12
#		if(c_letters[c] == "d"):
#			result = result + c*16*13
#		if(c_letters[c] == "e"):
#			result = result + c*16*14
#		if(c_letters[c] == "f"):
#			result = result + c*16*15
#		result = result % range

	return result


################# "main" #################### 
choice = input("List 1 (0-9,) or List 2 (0-59)? ")
while(choice != "1" and choice != "2"):
	choice = input("Has to be <1> or <2>: ")
if(choice == "1"):
	l = l1
else:
	l = l2
print()

#print("Random numbers will be suggested by function.")
#print("True random, if entered, should be either: ")
#print("		five ten sided dice, rolled together and lined up for order")
#print()
#print("				OR")
#print()
#print("		five ten sided dice, supplemented by five 6-sided dice ")
#print("		lined up for order and DECREMENTED by 1, to give 0-5.")
#print("		This arguably yields BASE 6, but is fair for 0 - 59.")
#print() 

number = input("How large an N, for the dataset: ")
print()
limit = int(number)
while(n < limit):
	rnum = random(len(l))
	print("Random number = " + str(rnum))
	outfile.write("Random number = " + str(rnum) + "\n")
	fx = input("Enter next random number: ")
	while(fx == ''):
		fx = input("Oops... you didn't enter a number: ")
	outfile.write("Value entered: " + fx + "\n")
	x = int(fx)
	print()
	outfile.write("\n")
	dataset.append(x)
	n = n + 1
	x_2 = x**2
	x_sum = x_sum + x
	sqr_sum = sqr_sum + x_2

print("N = " + str(n))
outfile.write("N = " + str(n) + "\n")
print("Sum of Xs = " + str(x_sum))
outfile.write("Sum of Xs = " + str(x_sum) + "\n")
print("Sum of Squares = " + str(sqr_sum))
outfile.write("Sum of Squares = " + str(sqr_sum) + "\n")
print("Mean = " + str(x_sum / n))
outfile.write("Mean = " + str(x_sum / n) + "\n")
print()
outfile.write("\n")
print("data set = ")
outfile.write("data set = " + "\n")
print(dataset)
x = 0
outfile.write("[")
while(x < len(dataset)-1):
	outfile.write(str(dataset[x]) + ", ")
	x = x + 1 
outfile.write(str(dataset[-1]) + "]")
outfile.close()


