자바스크립트에서 콜라츠 예상 동작 수행
콜라츠 예상 동작을 확인해 봅니다.
JavaScript에서 콜라츠 예상 동작을 실행하는 프로그램을 작성해 보았습니다.
· 자연수 입력
・「짝수라면 2로 나누고, 홀수라면 3배로 1을 더한다」라고 하는 조작을 반복한다
・1이 되면 종료한다
상기 조작으로 반드시 1이 되어 프로그램이 정지한다는 것이 「콜라츠 예상」입니다.
'예상'이라고 불리는 대로 2020년 현재 증명되지 않았습니다.
CollatzProblem.html<html>
<head>
<meta http-equiv="Content-Type" context="text/html; charset=UTF-8" />
<meta charset="UTF-8" />
<title>JavaScriptでコラッツ予想</title>
<script>
function doCalc() {
var txtN1 = document.getElementById("txtN1");
var n1, n2, strResult;
var vWork = [];
var vOut = [];
n1 = parseInt(txtN1.value, 10);
n2 = n1;
vOut.push("" + n1);
while (1) {
if (n2 <= 1) { break; }
if (n2 % 2 == 0) {
n1 = n2
n2 = n2 / 2;
strResult = "" + n1 + " / 2 = " + n2;
vOut.push(strResult);
} else {
n1 = n2
n2 = n2 * 3 + 1;
strResult = "" + n1 + " * 3 + 1 = " + n2;
vOut.push(strResult);
}
}
document.getElementById("result").innerHTML = vOut.join("\n");
}
</script>
</head>
<body>
<h2>コラッツ予想</h2>
<ul>
<li>自然数を入力する</li>
<li>「偶数なら2で割り、奇数なら3倍して1を足す」という操作を繰り返す</li>
<li>1になったら終了する</li>
</ul>
4桁 まで
<input type="text" id="txtN1" value="" maxlength="4" size="7" oninput="value = value.replace(/[^0-9]+/i,'');" />
<input type="button" value="計算" onclick="doCalc()" /><br />
<br />
<textarea id="result" rows="50" col="20" style="width:700px;height:400px;">
</textarea>
</body>
</html>
Reference
이 문제에 관하여(자바스크립트에서 콜라츠 예상 동작 수행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/stonee/items/c8c5a3571a12eccf1af5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<html>
<head>
<meta http-equiv="Content-Type" context="text/html; charset=UTF-8" />
<meta charset="UTF-8" />
<title>JavaScriptでコラッツ予想</title>
<script>
function doCalc() {
var txtN1 = document.getElementById("txtN1");
var n1, n2, strResult;
var vWork = [];
var vOut = [];
n1 = parseInt(txtN1.value, 10);
n2 = n1;
vOut.push("" + n1);
while (1) {
if (n2 <= 1) { break; }
if (n2 % 2 == 0) {
n1 = n2
n2 = n2 / 2;
strResult = "" + n1 + " / 2 = " + n2;
vOut.push(strResult);
} else {
n1 = n2
n2 = n2 * 3 + 1;
strResult = "" + n1 + " * 3 + 1 = " + n2;
vOut.push(strResult);
}
}
document.getElementById("result").innerHTML = vOut.join("\n");
}
</script>
</head>
<body>
<h2>コラッツ予想</h2>
<ul>
<li>自然数を入力する</li>
<li>「偶数なら2で割り、奇数なら3倍して1を足す」という操作を繰り返す</li>
<li>1になったら終了する</li>
</ul>
4桁 まで
<input type="text" id="txtN1" value="" maxlength="4" size="7" oninput="value = value.replace(/[^0-9]+/i,'');" />
<input type="button" value="計算" onclick="doCalc()" /><br />
<br />
<textarea id="result" rows="50" col="20" style="width:700px;height:400px;">
</textarea>
</body>
</html>
Reference
이 문제에 관하여(자바스크립트에서 콜라츠 예상 동작 수행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/stonee/items/c8c5a3571a12eccf1af5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)