javascript - জাভাস্ক্রিপ্ট ভেরিয়েবল




জাভাস্ক্রিপ্ট দুটি সংখ্যা মধ্যে র্যান্ডম সংখ্যা জেনারেট করুন (12)

জাভাস্ক্রিপ্টে নির্দিষ্ট পরিসরে একটি র্যান্ডম সংখ্যা উৎপন্ন করার উপায় আছে (যেমন 1 থেকে 6: 1, 2, 3, 4, 5, অথবা 6)?


Math.random()

Math.random() ডেভেলপার নেটওয়ার্ক ডকুমেন্টেশন থেকে:

// Returns a random integer between min (include) and max (include)

Math.floor(Math.random() * (max - min + 1)) + min;

দরকারী উদাহরণ:

// 0 -> 10
Math.floor(Math.random() * 11);

// 1 -> 10
Math.floor(Math.random() * 10) + 1;

// 5 -> 20
Math.floor(Math.random() * 16) + 5;

// -10 -> (-2)
Math.floor(Math.random() * 9) - 10;

jsfiddle: https://jsfiddle.net/cyGwf/477/

র্যান্ডম ইন্টিগ্রেশন : min এবং max মধ্যে একটি র্যান্ডম পূর্ণসংখ্যা পেতে নিম্নলিখিত কোডটি ব্যবহার করুন

function getRandomInteger(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}

র্যান্ডম ফ্লোটিং পয়েন্ট নম্বর : min এবং max মধ্যে একটি এলোমেলো ভাসমান বিন্দু নম্বর পেতে নিম্নলিখিত কোডটি ব্যবহার করুন

function getRandomFloat(min, max) {
  return Math.random() * (max - min) + min;
}

রেফারেন্স: Math.random()


অনেক উত্তর এবং প্রায় একই ফলাফল সত্ত্বেও। আমি আমার উত্তর যোগ করতে এবং তার কাজ ব্যাখ্যা করতে চাই। কারণ এটি একটি লাইন কোড পেস্ট করার পরিবর্তে তার কাজ বুঝতে গুরুত্বপূর্ণ। র্যান্ডম সংখ্যা উৎপন্ন সহজ গণিত ছাড়া কিছুই না।

কোড:

function getR(lower, upper) {

  var percent = (Math.random() * 100);
  // this will return number between 0-99 because Math.random returns decimal number from 0-0.9929292 something like that
  //now you have a percentage, use it find out the number between your INTERVAL :upper-lower 
  var num = ((percent * (upper - lower) / 100));
  //num will now have a number that falls in your INTERVAL simple maths
  num += lower;
  //add lower to make it fall in your INTERVAL
  //but num is still in decimal
  //use Math.floor>downward to its nearest integer you won't get upper value ever
  //use Math.ceil>upward to its nearest integer upper value is possible
  //Math.round>to its nearest integer 2.4>2 2.5>3   both lower and upper value possible
  console.log(Math.floor(num), Math.ceil(num), Math.round(num));
}

অন্যান্য সমাধান:

  • (Math.random() * 6 | 0) + 1
  • ~~(Math.random() * 6) + 1

আমি উপরে Francisc এর সমাধান খুঁজে পাওয়া যায় না মিনিট বা সর্বোচ্চ সংখ্যা অন্তর্ভুক্ত, তাই আমি এটা এই মত পরিবর্তন:

function randomInt(min,max)
{
    return Math.floor(Math.random()*(max-(min+1))+(min+1));
}

আমি টাইপস্ক্রিপ্টে র্যান্ডম সংখ্যা জেনারেটর অনুসন্ধান করছিলাম এবং আমি সব উত্তর পড়ার পরে এটি লিখেছি, আশা করি এটি টাইপস্ক্রিপ্ট কোডারগুলির জন্য কাজ করবে।

    Rand(min: number, max: number): number {
        return (Math.random() * (max - min + 1) | 0) + min;
    }   

গণিত আমার দৃঢ় বিন্দু নয়, তবে আমি এমন একটি প্রকল্পে কাজ করছি যেখানে আমি ইতিবাচক এবং নেতিবাচক উভয়ের মধ্যে র্যান্ডম সংখ্যাগুলি তৈরি করতে প্রয়োজনীয়।

function randomBetween(min, max) {
    if (min < 0) {
        return min + Math.random() * (Math.abs(min)+max);
    }else {
        return min + Math.random() * max;
    }
}

যেমন

randomBetween(-10,15)//or..
randomBetween(10,20)//or...
randomBetween(-200,-100)

অবশ্যই, আপনি সংখ্যার ব্যতীত অন্য কিছু না করে এটি নিশ্চিত করতে কিছু বৈধতা যোগ করতে পারেন। এছাড়াও সর্বদা সর্বনিম্ন থেকে কম বা সমান যে নিশ্চিত করুন।


জাভাস্ক্রিপ্ট একটি র্যান্ডম সংখ্যা তৈরি করার জন্য আমরা জাভাস্ক্রিপ্ট Math বস্তু নির্মিত ব্যবহার করতে পারেন। Math object একটি ফাংশন Math.random() । এই ফাংশন নিম্নলিখিত (উত্স MDN) করে:

Math.random () ফাংশনটি পরিসীমাতে প্রায় আনুমানিক বিতরণ সহ 0-1 (0 সহ, তবে 1 নয়) পরিসরতে একটি ভাসমান-বিন্দু, ছদ্ম-র্যান্ডম নম্বর প্রদান করে - যা আপনি আপনার পছন্দসই পরিসরতে স্কেল করতে পারেন।

এই কার্যকারিতা দেওয়া আমরা সহজেই আরো জটিল পরিস্থিতিতে এই স্কেল করতে পারেন। উদাহরণ স্বরূপ:

function randomNR (x, y){
return Math.round((Math.random() * x + y));
}

// dice >> random number between 1-6
// dice functionality without function >> Math.round((Math.random() * 5 + 1))
console.log(randomNR(5,1));


// coin >> random number between 0-1
// coin functionality without function >> Math.round((Math.random() * 1))
console.log(randomNR(1,0))


সেন্স আপনাকে সর্বোচ্চ সংখ্যাতে 1 যোগ করতে হবে এবং তারপরে এটিতে কাজ করার জন্য সর্বনিম্ন নম্বরটি সরিয়ে ফেলতে হবে এবং আমাকে অনেকগুলি র্যান্ডম ইন্টগার তৈরি করতে হবে, এই ফাংশনটি কাজ করে।

var random = function(max, min) {
    high++;
    return Math.floor((Math.random()) * (max - min)) + min;
};

এটি উভয় নেতিবাচক এবং ইতিবাচক সংখ্যাগুলির সাথে কাজ করে এবং আমি লাইব্রেরির জন্য দশমিকের উপর কাজ করছি।


Math.random() এর পরিবর্তে, আপনি crypto.getRandomValues() কে সমানভাবে-বিতরণ ক্রিপ্টোগ্রাফিক্যাল-সুরক্ষিত র্যান্ডম সংখ্যাগুলি জেনারেট করতে ব্যবহার করতে পারেন। এখানে একটি উদাহরণ:

function randInt(min, max) {
  var MAX_UINT32 = 0xFFFFFFFF;
  var range = max - min;

  if (!(range <= MAX_UINT32)) {
    throw new Error(
      "Range of " + range + " covering " + min + " to " + max + " is > " +
      MAX_UINT32 + ".");
  } else if (min === max) {
    return min;
  } else if (!(max > min)) {
    throw new Error("max (" + max + ") must be >= min (" + min + ").");
  }

  // We need to cut off values greater than this to avoid bias in distribution
  // over the range.
  var maxUnbiased = MAX_UINT32 - ((MAX_UINT32 + 1) % (range + 1));

  var rand;
  do {
    rand = crypto.getRandomValues(new Uint32Array(1))[0];
  } while (rand > maxUnbiased);

  var offset = rand % (range + 1);
  return min + offset;
}

console.log(randInt(-8, 8));          // -2
console.log(randInt(0, 0));           // 0
console.log(randInt(0, 0xFFFFFFFF));  // 944450079
console.log(randInt(-1, 0xFFFFFFFF));
// Uncaught Error: Range of 4294967296 covering -1 to 4294967295 is > 4294967295.
console.log(new Array(24).fill().map(n => randInt(8, 12)));
// [11, 8, 8, 11, 10, 8, 8, 12, 12, 12, 9, 9,
//  11, 8, 11, 8, 8, 8, 11, 9, 10, 12, 9, 11]
console.log(randInt(10, 8));
// Uncaught Error: max (8) must be >= min (10).


function random(min, max){
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

function randomIntFromInterval(min,max) // min and max included
{
    return Math.floor(Math.random()*(max-min+1)+min);
}

এটি "অতিরিক্ত" কী করে তা র্যান্ডম ব্যবধানগুলিকে 1 দিয়ে শুরু করতে দেয় না। সুতরাং উদাহরণস্বরূপ আপনি একটি র্যান্ডম সংখ্যা 10 থেকে 15 পেতে পারেন। নমনীয়তা.





random