C#を使用していますが、ランダムな10桁の数字を生成する必要があります。これまでのところ、最小最大値を示す例を見つけることができました。 0で始まる10桁の乱数をどのように生成しますか(最初はrandom.Next(1000000000,9999999999)
を期待していましたが、これが望んでいることを疑っています)。
私のコードは今このように見えます:
[WebMethod]
public string GenerateNumber()
{
Random random = new Random();
return random.Next(?);
}
**アップデートはそのようになりました、
[WebMethod]
public string GenerateNumber()
{
Random random = new Random();
string r = "";
int i;
for (i = 1; i < 11; i++)
{
r += random.Next(0, 9).ToString();
}
return r;
}
10桁が必要で、で始まるを許可すると、長い整数ではなく文字列を生成したいように聞こえます。
各文字が '0' .. '9'からランダムに選択される10文字の文字列を生成します。
これを使用して、指定された長さのランダムな数字を作成します
public string RandomDigits(int length)
{
var random = new Random();
string s = string.Empty;
for (int i = 0; i < length; i++)
s = String.Concat(s, random.Next(10).ToString());
return s;
}
試してください(絶対に正確ではありません)
Random R = new Random();
return ((long)R.Next (0, 100000 ) * (long)R.Next (0, 100000 )).ToString ().PadLeft (10, '0');
private void button1_Click(object sender, EventArgs e)
{
Random Rand = new Random();
long randnum2 = (long)(Rand.NextDouble() * 9000000000) + 1000000000;
MessageBox.Show(randnum2.ToString());
}
ループ(または他の長さの数字)なしで10桁の数字を取得するには
_private static readonly Random _rdm = new Random();
private string PinGenerator(int digits)
{
if (digits <= 1) return "";
var _min = (int)Math.Pow(10, digits - 1);
var _max = (int)Math.Pow(10, digits) - 1;
return _rdm.Next(_min, _max).ToString();
}
_
この関数は、n番目の数字の下限と上限を計算しました。
10桁の番号を生成するには、次のように使用します。
PinGenerator(10)
(1000000000,9999999999)はランダムではありません-1から始めることはできないので、ターゲットベースを既に10%削減しています。
Randomはdoubleなので、整数が必要な場合は、1,000,000,000を乗算し、小数点以下の桁を削除します。
//Ten digits
public string CreateRandomNumber
{
get
{
//returns 10 digit random number (Ticks returns 16 digit unique number, substring it to 10)
return DateTime.UtcNow.Ticks.ToString().Substring(8);
}
}
私は速いものを書き込もうとしました:
private int GetNDigitsRandomNumber(int digits)
{
var min = 1;
for (int i = 0; i < digits-1; i++)
{
min *= 10;
}
var max = min * 10;
return _rnd.Next(min, max);
}
Randomメソッドを使用したくないので、このメソッドを思いつきました。
public static string generate_Digits(int length)
{
var rndDigits = new System.Text.StringBuilder().Insert(0, "0123456789", length).ToString().ToCharArray();
return string.Join("", rndDigits.OrderBy(o => Guid.NewGuid()).Take(length));
}
お役に立てれば。
private static Random random = new Random((int)DateTime.Now.Ticks);//thanks to McAden
public long LongBetween(long maxValue, long minValue)
{
return (long)Math.Round(random.NextDouble() * (maxValue - minValue - 1)) + minValue;
}
Random random = new Random();
string randomNumber = string.Join(string.Empty, Enumerable.Range(0, 10).Select(number => random.Next(0, 9).ToString()));