teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

現在の問題点について

2021/07/14 12:21

投稿

omochidayo
omochidayo

スコア3

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,10 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  PHPで$a(8桁から19桁の数字)と$b(2桁以下の数字)のパラメーターを使用して、~~7桁の英数字のランダムな文字列を生成したいです。~~
4
- 元々$aの値が最大9桁の数字で、以下のプログラムでできていたのですが、最大19桁に増えてしまったため、同じ文字列が生成されるようになってしまいました。
4
+ ~~元々$aの値が最大9桁の数字で、以下のプログラムでできていたのですが、最大19桁に増えてしまったため、同じ文字列が生成されるようになってしまいました。~~
5
5
 
6
- **みなさまのご回答から7桁では無理だということが分かったので12桁に増やすことを検討中です。
6
+ みなさまのご回答から7桁では無理だということが分かったので12桁に増やすことを検討中です。
7
- その場合のシードの設定方法で良い案があればご教授ねがいます。**
7
+ **その場合のシードの設定方法で良い案**があればご教授ねがいます。
8
8
 
9
9
  追記
10
10
  $a apiから取得しているユーザーごとに違う数値
@@ -16,10 +16,11 @@
16
16
  srand((float)$a* 10000 + $b);
17
17
  ```
18
18
 
19
- 桁数が大きくなってしまった時、↑の部分により種が同じになってしまっているのが問題なのは分かるのですが、いい解決方法が思い浮かびません…
19
+ ~~桁数が大きくなってしまった時、↑の部分により種が同じになってしまっているのが問題なのは分かるのですが、いい解決方法が思い浮かびません…
20
- 何か良い方法があればご教授願います。
20
+ 何か良い方法があればご教授願います。~~
21
21
 
22
+
22
- ### 元々のソースコード
23
+ ### 修正したソースコード
23
24
  ```
24
25
  //$aは8桁から19桁の数字。
25
26
  //$bは2桁以下の数字。
@@ -34,7 +35,7 @@
34
35
  srand((float)$a* 10000 + $b);
35
36
 
36
37
  $val = '';
37
- for ($i = 0; $i <= 6; $i++) {
38
+ for ($i = 0; $i <= 11; $i++) {
38
39
 
39
40
  $rnd = rand(0, 61);
40
41
 
@@ -55,8 +56,6 @@
55
56
 
56
57
  ### 追記
57
58
  ご回答ありがとうございます。
58
- 今のままでは難しいことが分かりました
59
+ 今のままでは難しいことが分かり英数字を7桁から12桁に増やすことにしました。
59
-
60
- ちなみに最終的に生成される英数字の桁数を7桁から増やすとしたら何桁ぐらいがちょうどいいでしょうか?
61
60
  それからその場合シードをどう設定したら良いと思いますか。
62
61
  本当に初心者で全然分かっておらずすみません。

5

7桁を12桁に増やす方向中です。

2021/07/14 12:21

投稿

omochidayo
omochidayo

スコア3

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,11 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- PHPで$a(8桁から19桁の数字)と$b(2桁以下の数字)のパラメーターを使用して、7桁の英数字のランダムな文字列を生成したいです。
3
+ PHPで$a(8桁から19桁の数字)と$b(2桁以下の数字)のパラメーターを使用して、~~7桁の英数字のランダムな文字列を生成したいです。~~
4
4
  元々$aの値が最大9桁の数字で、以下のプログラムでできていたのですが、最大19桁に増えてしまったため、同じ文字列が生成されるようになってしまいました。
5
5
 
6
+ **みなさまのご回答から7桁では無理だということが分かったので12桁に増やすことを検討中です。
7
+ その場合のシードの設定方法で良い案があればご教授ねがいます。**
8
+
6
9
  追記
7
10
  $a apiから取得しているユーザーごとに違う数値
8
11
  $b 使った日数

4

$a,$bについて追加

2021/07/14 12:12

投稿

omochidayo
omochidayo

スコア3

title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,11 @@
3
3
  PHPで$a(8桁から19桁の数字)と$b(2桁以下の数字)のパラメーターを使用して、7桁の英数字のランダムな文字列を生成したいです。
4
4
  元々$aの値が最大9桁の数字で、以下のプログラムでできていたのですが、最大19桁に増えてしまったため、同じ文字列が生成されるようになってしまいました。
5
5
 
6
+ 追記
7
+ $a apiから取得しているユーザーごとに違う数値
8
+ $b 使った日数
9
+ になります。
10
+
6
11
  ### 発生している問題
7
12
  ```
8
13
  srand((float)$a* 10000 + $b);

3

追記追加

2021/07/14 11:45

投稿

omochidayo
omochidayo

スコア3

title CHANGED
File without changes
body CHANGED
@@ -43,4 +43,12 @@
43
43
  return $val;
44
44
 
45
45
  var_dump($val);
46
- ```
46
+ ```
47
+
48
+ ### 追記
49
+ ご回答ありがとうございます。
50
+ 今のままでは難しいことが分かりました…。
51
+
52
+ ちなみに最終的に生成される英数字の桁数を7桁から増やすとしたら何桁ぐらいがちょうどいいでしょうか?
53
+ それからその場合シードをどう設定したら良いと思いますか。
54
+ 本当に初心者で全然分かっておらずすみません。

2

$bは2桁以下の数字です。1桁の場合もあります。

2021/07/14 11:43

投稿

omochidayo
omochidayo

スコア3

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- PHPで$a(8桁から19桁の数字)と$b(2桁の数字)のパラメーターを使用して、7桁の英数字のランダムな文字列を生成したいです。
3
+ PHPで$a(8桁から19桁の数字)と$b(2桁以下の数字)のパラメーターを使用して、7桁の英数字のランダムな文字列を生成したいです。
4
4
  元々$aの値が最大9桁の数字で、以下のプログラムでできていたのですが、最大19桁に増えてしまったため、同じ文字列が生成されるようになってしまいました。
5
5
 
6
6
  ### 発生している問題
@@ -14,13 +14,13 @@
14
14
  ### 元々のソースコード
15
15
  ```
16
16
  //$aは8桁から19桁の数字。
17
- //$bは2桁の数字。
17
+ //$bは2桁以下の数字。
18
18
 
19
19
 
20
20
  //数値のexample
21
21
  $a =99999999; //うまくいっていた
22
22
  $a =9999999999999999999; //桁数が増えたことによりうまくいかない
23
- $b =23; //2桁の数字に変わりなし
23
+ $b =23; //2桁以下の数字
24
24
 
25
25
 
26
26
  srand((float)$a* 10000 + $b);

1

初心者マークをつけました。

2021/07/14 10:49

投稿

omochidayo
omochidayo

スコア3

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- PHPで$a(8桁から19桁の数字)と$b(2桁の数字)のパラメーターを使用して7桁の英数字のランダムな文字列を生成したいです。
3
+ PHPで$a(8桁から19桁の数字)と$b(2桁の数字)のパラメーターを使用して7桁の英数字のランダムな文字列を生成したいです。
4
4
  元々$aの値が最大9桁の数字で、以下のプログラムでできていたのですが、最大19桁に増えてしまったため、同じ文字列が生成されるようになってしまいました。
5
5
 
6
6
  ### 発生している問題