একটি ব্যাপ্তির মধ্যে বেশ কয়েকটি এলোমেলো সংখ্যা তৈরি করা


8

আমি উত্পন্ন করতে চাই, বলুন 100 এবং 200 এর মধ্যে 10 টি এলোমেলো সংখ্যা (উভয়ই অন্তর্ভুক্ত) আমি কীভাবে এটি র‌্যান্ড দিয়ে তৈরি করব?


2
আপনি কি বলতে চাইছেন rand? RANDOMপরিবর্তনশীল? /dev/random? /dev/urandom?
মুড়ু

না, আমি কেবলমাত্র রেড কমান্ডটি বোঝাই যা আপনি বাশ থেকে চালাবেন।
ইগ্যাসিও ক্যাভিডিজ

1
এই randনাকি এই rand?
মুরু

উত্তর:


7

আপনি কি এটি বলতে পারেন randথেকে প্যাকেজ (যেমন দ্বারা OpenSSL থেকে এক থেকে ভিন্ন), এটি একটি নিম্ন মুখী সমর্থন করে না, শুধুমাত্র একটি ঊর্ধ্ব আবদ্ধ। আপনি যা করতে পারেন তা হ'ল শিফট-লোয়ার-বাউন্ড-টু-শূন্য-এর-পরে-অ্যাড-লোয়ার-বাউন্ড ট্রিক:rand

$ rand -N 10 -M 100 -e -d '\n' | awk '{$0 += 100}1'
170
180
192
168
169
170
117
180
167
142
  • -N আপনার প্রয়োজনীয় এলোমেলো সংখ্যা
  • -Mসংখ্যা randআউটপুটগুলির উপরের সীমানা হবে , সুতরাং ( সর্বাধিক - মিনিট = 100)
  • -e -d '\n'সীমানাটিকে একটি নতুন লাইনে সেট করে। এটি প্রক্রিয়াজাতকরণের সুবিধার জন্য awk

awkকোড তারপর প্রতিটি লাইনে নেয় এবং এটি 100 যোগ করে।


দুর্দান্ত, মুরু। এটাই! অনেক চেষ্টা করে।
ইগ্যাসিও ক্যাভিডেস

কুইস সিদ্ধান্ত, কল্পনা, মুরু। মুচাস গ্রাসিয়াস।
ইগ্যাসিও ক্যাভিডেস

6

ব্যবহার python:

#!/usr/bin/env python2
import random
for i in range(10):
    print random.randint(100, 200)

আউটপুট:

187
123
194
190
124
121
191
103
126
192

এখানে আমি 100 (200) (অন্তর্ভুক্ত) ( ) এর মধ্যে 10 ( ) র্যান্ডম পূর্ণসংখ্যার উত্পাদন করতে randomমডিউলটি ব্যবহার করেছি ।pythonrange(10)random.randint(100, 200)


5

এখানে একটি পার্ল উপায়:

$ perl -le 'print 100+int(rand(101)) for(1..10)'

129
197
127
167
116
134
143
134
122
117
Or, on the same line:

$ perl -e 'print 100+int(rand(101))." " for(1..10); print "\n"'
147 181 146 115 126 116 154 112 100 116 

আপনি ব্যবহার করতে পারেন /dev/urandom( এখান থেকে অভিযোজিত ):

$ for((i=0;i<=10;i++)); do 
    echo $(( 100+(`od -An -N2 -i /dev/urandom` )%(101))); 
done
101
156
102
190
152
130
178
165
186
173
143

@ignaciocaviedes আপনি স্বাগত জানাই যাইহোক, দয়া করে এই উত্তরগুলির একটির (পারহ্যাপের মুড়ু যা আপনার পছন্দসই সরঞ্জামটি ব্যবহার করে) গ্রহণ করার বিষয়ে বিবেচনা করুন এবং আপনাকে মন্তব্য করার পরিবর্তে বাকী অংশটিকে সমর্থন করুন। ধন্যবাদ এখানে প্রকাশ করা হয়। ওয়াই পোরকে লে এসক্রিস্টে এন ক্যাস্তেলানো আল মুরু? এল টিও এস ডি ইন্ডিয়া! : পি
টেরডন

@ স্টারডন আপনি কী বলেছেন তা আমার কোনও ধারণা নেই। ওও
মুরু


3

সঙ্গে shufগনুহ coreutils থেকে:

$ shuf -i 100-200 -n 10
159
112
192
140
166
121
135
120
198
139

আমি মনে করি আপনার প্রশ্নটি আমার সেরা প্রশ্নের উত্তর, কুংলম। আমি এটিকে সমর্থন করি; আপনাকে অনেক ধন্যবাদ.
ইগ্যাসিও ক্যাভিডেস

2

আপনি ব্যবহার করতে পারেন $RANDOM

number=0   #initialize the number
FLOOR=100
RANGE=200
while [ "$number" -le $FLOOR ]
do
  number=$RANDOM
  let "number %= $RANGE"  # Scales $number down within $RANGE.
done
echo "Random number between $FLOOR and $RANGE $number"
echo

এটা ঠিক কাজ করে, পাবি। আবার অনেক চেষ্টা করে।
ইগ্যাসিও ক্যাভিডেস

1

বাশ সংস্করণ

কিছুই দর্শনীয় নয় - iকাউন্টার সহ লুপের জন্য সাধারণ অনুকরণ এবং whileif . . . else . . .fiকাঠামো ব্যবহার করে ব্যাপ্তি সেট করা আছে । পার্শ্ব নোট: আমার প্রম্পট প্রথমে ডিরেক্টরি কাজ করছে, তারপরে ইনপুট অঞ্চল, তাই আপনি যা দেখছেন তাতে বিভ্রান্ত হবেন না

$ ./bashRadom.sh 100 200                                                       
190
111
101
158
171
197
199
147
142
125

bashRadom.sh:

#! /bin/bash

i=0; 
while [ $i -lt 10  ]; do 

  NUM=$RANDOM; 
  if [ $NUM -gt $1 ] && [ $NUM -lt $2  ]; then 
      echo $NUM; 
  else continue; 
  fi;
  i=$((i+1));

done

সি সংস্করণ

আমার বিশ্ববিদ্যালয়ে সি ক্লাস নেওয়ার সময় আমি এই কোডটি ব্যবহার করেছি। আমি এই প্রশ্নের উপযুক্ত করতে সংক্ষিপ্ত সম্পাদনাটি হ'ল কমান্ড লাইন আর্গুমেন্টের ব্যবহার (উত্সটিতে হার্ডকোডিংয়ের মানগুলির পরিবর্তে)

$ gcc randfunc.c   
$ ./a.out 100 200
100 
106 
155 
132 
161 
130 
110 
195 
105 
162 
187 

randfunc.c:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int randInt (int, int);

void
main (int argc, char *argv[])
{    
  int min = atoi (argv[1]), max = atoi (argv[2]), i = 0;
  srand (time (NULL));    

  for (i; i < 11; i++)
    {
      printf ("%d \n", randInt (min, max));
    }    
}    

int
randInt (int a, int b)
{
  int randValue;
  randValue = a + (int) rand () % (b - a + 1);
  return randValue;    
}

খুবই অনুরূপ: askubuntu.com/a/621557/158442
muru

@ মুরু ইতিমধ্যে এটি পোস্ট করেছেন এমন কাউকে দেখেনি। আমি আমার সি সংস্করণটি যুক্ত করার প্রক্রিয়াতেও আছি। আমি সি ছাড়াও বাশ সংস্করণ রাখি কি ঠিক হবে?
সের্গেই কোলোডিয়াজনি

আমার দ্বারা ভাল, যেভাবেই হোক।
মুরু

আপনি যদি সি ব্যবহার করতে চলেছেন তবে আপনার randomলাইব্রেরির সাথে সত্যই সি ++ ব্যবহার করা উচিত : স্ট্যাকওভারফ্লো . com
a/

@ মুরু আমি এখন পর্যন্ত কেবলমাত্র সি সি ++ এর সাথে পরিচিত নই। তবে তথ্যের জন্য আপনাকে ধন্যবাদ ^ _ ^
সের্গেই কলডিয়াজহনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.