#include <stdio.h>
int main(void)
{
int i, j;
long dec; /* ให้รับค่าอินพุทแบบ Long Integer - เลขจำนวนเต็มแบบยาว */
int bit[32]; /* จองพื้นที่ในการเก็บข้อมูลเลขฐาน 2 ลงใน Array */
clrscr(); /* เคลียร์หน้าจอ */
printf("Decimal Number : "); /* แจ้งผู้ใช้เพื่อเตรียมป้อนค่าเลขฐาน 10 */ scanf("%ld", &dec); /* ต้องใช้ ld เพราะ Input มันเป็นแบบ Long Integer */
i = 0; /* กำหนดค่าเริ่มต้นของ Array */
/* ทำตามที่ได้ออกแบบโปรแกรมเอาไว้ ... ยังไงยังงั้นเลย 55555+ */
do {
bit[i++] = dec % 2; /* การหารเอาเศษ เพื่อให้เป็นคำตอบ */
/* การหารทั่วไป แต่ตัวแปร dec ของภาษา C มันเป็น Integer หรือ เลขจำนวนเต็ม */
/* ดังนั้นมันจึงตัดเศษ (หรือทศนิยม) ทิ้งไปโดยอัตโนมัติ */
dec = dec / 2;
} while (dec > 0); /* เงื่อนไขที่ทำจนกระทั่ง dec = 0 ก็ออกจากวังวนเงื่อนไข */
/* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
/* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
/* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
/* ทำให้ LSB มันไปอยู่ทางซ้าย ส่วน MSB มันไปอยู่ทางขวา */
for(j = i - 1; j >= 0; j--)
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKQp7CmludCBpLCBqOwpsb25nIGRlYzsgIC8qIOC5g+C4q+C5ieC4o+C4seC4muC4hOC5iOC4suC4reC4tOC4meC4nuC4uOC4l+C5geC4muC4miBMb25nIEludGVnZXIgLSDguYDguKXguILguIjguLPguJnguKfguJnguYDguJXguYfguKHguYHguJrguJrguKLguLLguKcgKi8KaW50IGJpdFszMl07ICAvKiDguIjguK3guIfguJ7guLfguYnguJnguJfguLXguYjguYPguJnguIHguLLguKPguYDguIHguYfguJrguILguYnguK3guKHguLnguKXguYDguKXguILguJDguLLguJkgMiDguKXguIfguYPguJkgQXJyYXkgKi8KCiAgICBjbHJzY3IoKTsgIC8qIOC5gOC4hOC4peC4teC4ouC4o+C5jOC4q+C4meC5ieC4suC4iOC4rSAqLwogICAgcHJpbnRmKCJEZWNpbWFsIE51bWJlciA6ICIpOyAgLyog4LmB4LiI4LmJ4LiH4Lic4Li54LmJ4LmD4LiK4LmJ4LmA4Lie4Li34LmI4Lit4LmA4LiV4Lij4Li14Lii4Lih4Lib4LmJ4Lit4LiZ4LiE4LmI4Liy4LmA4Lil4LiC4LiQ4Liy4LiZIDEwICovCiAgICBzY2FuZigiJWxkIiwgJmRlYyk7ICAvKiDguJXguYnguK3guIfguYPguIrguYkgbGQg4LmA4Lie4Lij4Liy4LiwIElucHV0IOC4oeC4seC4meC5gOC4m+C5h+C4meC5geC4muC4miBMb25nIEludGVnZXIgKi8KICAgIGkgPSAwOyAgLyog4LiB4Liz4Lir4LiZ4LiU4LiE4LmI4Liy4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZ4LiC4Lit4LiHIEFycmF5ICovCiAgICAvKiDguJfguLPguJXguLLguKHguJfguLXguYjguYTguJTguYnguK3guK3guIHguYHguJrguJrguYLguJvguKPguYHguIHguKPguKHguYDguK3guLLguYTguKfguYkgLi4uIOC4ouC4seC4h+C5hOC4h+C4ouC4seC4h+C4h+C4seC5ieC4meC5gOC4peC4oiA1NTU1NSsgKi8KICAgIGRvIHsKICAgICAgICBiaXRbaSsrXSA9IGRlYyAlIDI7ICAvKiDguIHguLLguKPguKvguLLguKPguYDguK3guLLguYDguKjguKkg4LmA4Lie4Li34LmI4Lit4LmD4Lir4LmJ4LmA4Lib4LmH4LiZ4LiE4Liz4LiV4Lit4LiaICovCgogICAgICAgIC8qIOC4geC4suC4o+C4q+C4suC4o+C4l+C4seC5iOC4p+C5hOC4myDguYHguJXguYjguJXguLHguKfguYHguJvguKMgZGVjIOC4guC4reC4h+C4oOC4suC4qeC4siBDIOC4oeC4seC4meC5gOC4m+C5h+C4mSBJbnRlZ2VyIOC4q+C4o+C4t+C4rSDguYDguKXguILguIjguLPguJnguKfguJnguYDguJXguYfguKEgKi8KICAgICAgICAvKiDguJTguLHguIfguJnguLHguYnguJnguKHguLHguJnguIjguLbguIfguJXguLHguJTguYDguKjguKkgKOC4q+C4o+C4t+C4reC4l+C4qOC4meC4tOC4ouC4oSkg4LiX4Li04LmJ4LiH4LmE4Lib4LmC4LiU4Lii4Lit4Lix4LiV4LmC4LiZ4Lih4Lix4LiV4Li0ICovCiAgICAgICAgZGVjID0gZGVjIC8gMjsKCiAgICB9IHdoaWxlIChkZWMgPiAwKTsgIC8qIOC5gOC4h+C4t+C5iOC4reC4meC5hOC4guC4l+C4teC5iOC4l+C4s+C4iOC4meC4geC4o+C4sOC4l+C4seC5iOC4hyBkZWMgPSAwIOC4geC5h+C4reC4reC4geC4iOC4suC4geC4p+C4seC4h+C4p+C4meC5gOC4h+C4t+C5iOC4reC4meC5hOC4giAqLwoKICAgIC8qIOC4geC4suC4o+C5geC4quC4lOC4h+C4nOC4peC4guC4reC4h+C4geC4suC4o+C5geC4m+C4peC4h+C5gOC4peC4guC4kOC4suC4mSAxMCDguYDguJvguYfguJnguYDguKXguILguJDguLLguJkgMiovCiAgICAvKiBqID0gaSAtIDEg4LmB4Lil4Liw4LmD4Lir4LmJIGog4Lil4LiU4LiE4LmI4Liy4Lil4LiH4LiX4Li14Lil4LiwIDEgLi4uIOC4geC5h+C4hOC4t+C4reC4reC5iOC4suC4meC4guC5ieC4reC4oeC4ueC4peC4luC4reC4ouC4q+C4peC4seC4h+C4geC4peC4seC4muC5gOC4l+C5iOC4suC4meC4seC5ieC4meC5gOC4reC4h+C4hOC4o+C4seC4miAqLwogICAgLyog4LmA4Lie4Lij4Liy4Liw4LiV4Lix4Lin4LmB4Lib4Lij4LmB4Lia4LiaIEFycmF5IOC5g+C4meC4oOC4suC4qeC4siBDIOC4oeC4seC4meC5gOC4geC5h+C4muC4guC5ieC4reC4oeC4ueC4peC4iOC4suC4geC4i+C5ieC4suC4ouC5hOC4m+C4guC4p+C4siAqLwogICAgLyog4LiX4Liz4LmD4Lir4LmJIExTQiDguKHguLHguJnguYTguJvguK3guKLguLnguYjguJfguLLguIfguIvguYnguLLguKIg4Liq4LmI4Lin4LiZIE1TQiDguKHguLHguJnguYTguJvguK3guKLguLnguYjguJfguLLguIfguILguKfguLIgKi8KICAgIGZvcihqID0gaSAtIDE7IGogPj0gMDsgai0tKQogICAgICAgIHByaW50ZigiJWQiLCBiaXRbal0pOwoKcHJpbnRmKCJcbiIpOwpyZXR1cm4gMDsKCn0=
Jmx0OyFET0NUWVBFIGh0bWwmZ3Q7CiZsdDtodG1sIGxhbmc9JnF1b3Q7dGgmcXVvdDsmZ3Q7CiZsdDtoZWFkJmd0OwogICAgJmx0O21ldGEgY2hhcnNldD0mcXVvdDtVVEYtOCZxdW90OyZndDsKICAgICZsdDttZXRhIG5hbWU9JnF1b3Q7dmlld3BvcnQmcXVvdDsgY29udGVudD0mcXVvdDt3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wJnF1b3Q7Jmd0OwogICAgJmx0O3RpdGxlJmd0O+C5guC4m+C4o+C5geC4geC4o+C4oeC4quC4uOC5iOC4oeC5geC4muC4muC4geC4s+C4q+C4meC4lOC4reC4seC4leC4o+C4suC4geC4suC4o+C4reC4reC4gSZsdDsvdGl0bGUmZ3Q7CiZsdDsvaGVhZCZndDsKJmx0O2JvZHkmZ3Q7CiAgICAmbHQ7aDImZ3Q74Liq4Li44LmI4Lih4Lij4Liy4Lii4LiB4Liy4Lij4LmC4LiU4Lii4LiB4Liz4Lir4LiZ4LiU4Lit4Lix4LiV4Lij4LiyJmx0Oy9oMiZndDsKICAgICZsdDtidXR0b24gb25jbGljaz0mcXVvdDtyYW5kb21TZWxlY3QoKSZxdW90OyZndDvguKrguLjguYjguKHguYDguKXguKIhJmx0Oy9idXR0b24mZ3Q7CiAgICAmbHQ7cCBpZD0mcXVvdDtyZXN1bHQmcXVvdDsmZ3Q7Jmx0Oy9wJmd0OwoKICAgICZsdDtzY3JpcHQmZ3Q7CiAgICAgICAgZnVuY3Rpb24gcmFuZG9tU2VsZWN0KCkgewogICAgICAgICAgICBsZXQgaXRlbXMgPSBbJnF1b3Q7QSZxdW90OywgJnF1b3Q7QiZxdW90OywgJnF1b3Q7QyZxdW90OywgJnF1b3Q7RCZxdW90O107CiAgICAgICAgICAgIGxldCB3ZWlnaHRzID0gWzAuMSwgMC4zLCAwLjUsIDAuMV07IC8vIOC4reC4seC4leC4o+C4suC4geC4suC4o+C4reC4reC4geC4guC4reC4h+C5geC4leC5iOC4peC4sOC4leC4seC4p+C5gOC4peC4t+C4reC4gQoKICAgICAgICAgICAgLy8g4Lif4Lix4LiH4LiB4LmM4LiK4Lix4LiZ4Liq4Li44LmI4Lih4LmB4Lia4Lia4LiB4Liz4Lir4LiZ4LiU4LiZ4LmJ4Liz4Lir4LiZ4Lix4LiBCiAgICAgICAgICAgIGZ1bmN0aW9uIHdlaWdodGVkUmFuZG9tKGl0ZW1zLCB3ZWlnaHRzKSB7CiAgICAgICAgICAgICAgICBsZXQgc3VtID0gd2VpZ2h0cy5yZWR1Y2UoKGEsIGIpID0mZ3Q7IGEgKyBiLCAwKTsKICAgICAgICAgICAgICAgIGxldCByYW5kID0gTWF0aC5yYW5kb20oKSAqIHN1bTsKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpICZsdDsgaXRlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAocmFuZCAmbHQ7IHdlaWdodHNbaV0pIHJldHVybiBpdGVtc1tpXTsKICAgICAgICAgICAgICAgICAgICByYW5kIC09IHdlaWdodHNbaV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxldCByZXN1bHQgPSB3ZWlnaHRlZFJhbmRvbShpdGVtcywgd2VpZ2h0cyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCZxdW90O3Jlc3VsdCZxdW90OykuaW5uZXJUZXh0ID0gJnF1b3Q74Lic4Lil4LiB4Liy4Lij4Liq4Li44LmI4LihOiAmcXVvdDsgKyByZXN1bHQ7CiAgICAgICAgfQogICAgJmx0Oy9zY3JpcHQmZ3Q7CiZsdDsvYm9keSZndDsKJmx0Oy9odG1sJmd0Ow==
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>โปรแกรมสุ่มแบบกำหนดอัตราการออก</title>
</head>
<body>
<h2>สุ่มรายการโดยกำหนดอัตรา</h2>
<button onclick="randomSelect()">สุ่มเลย!</button>
<p id="result"></p>
<script>
function randomSelect() {
let items = ["A", "B", "C", "D"];
let weights = [0.1, 0.3, 0.5, 0.1]; // อัตราการออกของแต่ละตัวเลือก
// ฟังก์ชันสุ่มแบบกำหนดน้ำหนัก
function weightedRandom(items, weights) {
let sum = weights.reduce((a, b) => a + b, 0);
let rand = Math.random() * sum;
for (let i = 0; i < items.length; i++) {
if (rand < weights[i]) return items[i];
rand -= weights[i];
}
}
let result = weightedRandom(items, weights);
document.getElementById("result").innerText = "ผลการสุ่ม: " + result;
}
</script>
</body>
</html>