今日の目標
コラッツの問題
今日の結果
コラッツの問題
→達成
コラッツの問題
コラッツの問題とは、自然数nは奇数だと3n+1,偶数だとn➗2と計算する処理を繰り返すと有限回の操作で必ず1になるという予想です。
今回はラズパイ4のVSCode上でpythonのソースコードを書きました。
その途中で生じた課題点を書いておきます。
input関数の仕様
戻り地が文字列型になってしまうので、n=input() では、nは文字列型のままです。
解決策は、 n=int(input()) に変える。ただそれだけ。
トラップ作業中に気づいたこと
トラップ作業中に、指定外の値が入力される対策後、コンソールをクリアして再度入力を求めるようにしました。
この作業中、コンソールをクリアする箇所を参考サイト通りにos.system('cls')と書いていましたが、sh: 1: cls: not foundとメッセージを返されました。つまり、clsコマンドが存在しないと言われました。
os.system('clear')と書いたらうまくいきました。これは、ラズパイのシェルがbashだったからみたいです。
envコマンドを実行した結果、1行目にて確認できます。
今回のソースコード
import subprocess import os import time def isascnum(s): return True if s.isdecimal() and s.isascii() else False #三項演算子 条件左:10進数の判別 条件右:半角かの判別 def collatz_test(): n=input("Please enter a half size natural number:") if isascnum(n) and int(n)>0: n=int(n) else: print("Please enter a half size natural number.") time.sleep(3) os.system('clear')#shellによってclearではなくclsと書くことも。envコマンドで確認可能 return collatz_test() # n=int(input("Please enter a natural number:")) m=n i=0 while n!=1: if n%2: n=n*3+1 else: n=n/2 i=i+1 #print(n) print("Input Value:",m,"\nNumber of Steps:",i) # g=input("Please enter a natural number:") # print(type(g)#これだと、gは文字列として扱われる collatz_test()
次回の目標
Google Drive上のフォルダのショートカットを作る
Git Hubを触る