[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart4 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
296: 2021/05/27(木)07:31 ID:gb+qRYu8(1/2) AAS
0から1のfloat乱数を10個作って合計、合計値をAとする
300/Aを上の10個の乱数と掛け算する

誤差は自分でなんとかして
297
(2): 2021/05/27(木)07:56 ID:UiFe0pyC(1/3) AAS
>>295
全文書いてないだけですよね。
298
(1): 2021/05/27(木)08:37 ID:a0FlewyP(1/10) AAS
素朴な疑問なんだけど
乱数の出現率が常時10%固定で10分割すると
NumberNは300*0.1=30くらいにいつもなるのでは?

この式は300並んだ配列の順番を求める式ではないよね
何に使うのかがよく分からない
299
(1): 2021/05/27(木)08:43 ID:SLQj1j9d(2/3) AAS
>>297
Random.Range、そのパラメータじゃ1-10のランダム値こねーだろ

変数10分けてるのも意味わからんし何より他の人が言ってるようにほぼほぼ同じになる値を何に使いたいのか

ランダム値のランダム性の検証でもしたいのか?
300: 2021/05/27(木)09:10 ID:UiFe0pyC(2/3) AAS
>>299
エスパー現るw
そうなんだろうけど、そればかりは本人にしかねぇ。
301: 2021/05/27(木)09:13 ID:a0FlewyP(2/10) AAS
0〜10はRandom.Range(0, 11)だよね 10+1をmaxに入れる
1,9だと1〜8になるので何かが可笑しい

「乱数テーブル」を作りたいなら素直にググった方がいいと思う
302
(2): 宵闇大使 ◆SoVpkB15jY 2021/05/27(木)09:30 ID:tYp4tuFV(1) AAS
Random.Range(0, 5)の0が以上なのに5のほうは未満なの結構初心者には罠でふよね(^^
僕も最初混乱しまひたよ(^^
303: 289 2021/05/27(木)09:51 ID:un4LUW1y(1/5) AAS
>>295
書き間違いなだけで>>297の解釈で合ってます。
×int test=Random.Range(1, 9);
〇int test=Random.Range(1, 10);

>>298
1つの変数の平均値は30の計算なので、ランダムで生成された数値が30でも問題ないです。
これは、ステータスの初期値をランダム生成させたいだけです。
体力51、魔力5、精神力20みたいな感じです。

>>302
C#とunity勉強始めてからまだ1カ月経ってないぐらいなので、C#のランダムとごっちゃになりますね。

皆様、レスありがとうございました。
304: 2021/05/27(木)10:06 ID:a0FlewyP(3/10) AAS
適当な振れ幅なら
int AGI = 30 + Random.Range(-5,5+1)
みたいに書けると思う

intは負の値いけたっけ?
floatは多用するんだけど(-30,30+1)にできるなら
30を基準にして0〜60が作れる
305: 2021/05/27(木)10:19 ID:coz7zI8o(1/2) AAS
>>292
それをしたいならifじゃなくてswitchかな

for (int i =0; i < 300; i++)
{
int num=Random.Range(0, 10);
switch(num){
case 0: Nunber0++;
break;
case 1: Nunber1++;
break;
&#8226;&#8226;&#8226;
306: 2021/05/27(木)10:26 ID:gb+qRYu8(2/2) AAS
10個の乱数決めるのにRandom300回か
面白いね君たち
307: 2021/05/27(木)10:31 ID:4V3hIemC(1/2) AAS
ランダムな9個の仕切りで分けるのはちゃんとランダム?
308: 2021/05/27(木)10:59 ID:UiFe0pyC(3/3) AAS
うーん、ランダム
309: 2021/05/27(木)11:01 ID:a0FlewyP(4/10) AAS
外部リンク:qiita.com
配列の正規化を使ってlist*300すると簡単に出せるけど
floorだから足しても300にはならないが非常にシンプル
画像リンク

310
(2): 2021/05/27(木)11:17 ID:coz7zI8o(2/2) AAS
>>289
これをベースに考えるなら
変数を10個作るのではなく配列にして
後からランダムに並び替えるのがいいかな

float[] array = new float[10];

//この間で数値の振り分け

float[] number = array.OrderBy(i => Guid.NewGuid()).ToArray();
311: 2021/05/27(木)12:50 ID:ocyZxuLk(1/3) AAS
0〜300の乱数を一つも被らずに10個ゲットしたいって話ならこんな感じ

int v = 300 / 10;
List<int> Nums = new List<int>();
for (int i = 0; i < 10; i++) {
Nums.Add(Random.Range (((v * (i+1)) - v), (v * (i+1))+1 ) ) ;
print( Nums[i]);
}
312
(3): 2021/05/27(木)13:37 ID:un4LUW1y(2/5) AAS
便利なサイトがあったので、コード貼ります。
外部リンク:ideone.com

300を10個の変数に振り分けたいんですよ。

例1(均等に振り分けた場合)
A30B30C30D30E30F30G30H30I30J30   ※合計300

例2(ランダムに振り分けた場合)
A55B11C21D46E8F26G42H35I30J26   ※合計300

この例2をやりたいんですよ。
現在のfor文を300回やるパターンでも例2は再現できてますが、
あまりよろしくないとの意見もあるので、現在模索中です。
313: 2021/05/27(木)14:32 ID:iQQ16bCL(1) AAS
二枚の白い板を、隙間なく並べたとき、板の継ぎ目が全く見えないのですが、
ライトマップをベイクすると、板の色が違う色になってしまい、継ぎ目が解るようになってしまいます。
これを、継ぎ目が解らないようにするには、どのようにすればよいですか?
ご存じの方、いらっしゃいましたら、教えていただけると嬉しです。
宜しくお願いいたします。
314
(1): 2021/05/27(木)14:33 ID:SW5j+p99(1/6) AAS
>>312
うーん>>310で実現出来てると思うんだけどダメな理由を教えて?
>>289では最後に0が固まるのが不満なんだよね?
数値が決まってからランダムに並べ替えるだけで問題解決だと思ってるのだけど

それとも0が複数出るのが嫌って事なのかな?
その辺は下限値を決めるとかいくらでも出来ると思うけど
315
(3): 2021/05/27(木)14:34 ID:a0FlewyP(5/10) AAS
>>312
外部リンク:ideone.com
forで回したいならコレでいい
316
(1): 2021/05/27(木)14:40 ID:UO0LeoxU(1) AAS
>>312
10個の変数に割り振る際の各変数の取りうる値の範囲とか、ばらつきや片寄り具合をどうしたいのとか、仕様は明確になってるの?
そちらを決めないままアルゴリズムを模索しても意味がないよ
よろしくないという意見は自分がやりたいことに合致してる?ただダメと言われたから他の方法にしたいとか思ってないか?
317
(1): 2021/05/27(木)15:10 ID:un4LUW1y(3/5) AAS
>314
シンプルで良いコードだと思うんですけど、
>310>289をベースにしているので、ふり幅があまりにも大きすぎるのと、
0が多すぎるので、>289の考え方自体が間違ってたんですよ。
すみません。

>315
ありがとうございます。

>316
残念ながら、仕様は明確ではないですね。
ある程度ふり幅があって、数値がバラバラになってくれればいいという感じです。
318
(1): 2021/05/27(木)15:33 ID:a0FlewyP(6/10) AAS
外部リンク:ideone.com
whileで配列がnになるまで回すなら
こういう書き方も出来る

sum:300,

9,48,1,48,23,59,1,27,27,57,

キャラメイクでアタリを引くまでリセマラはアリな派
ハズレは大いにアリじゃね?
319
(1): 2021/05/27(木)15:36 ID:SW5j+p99(2/6) AAS
>>317
ならこんなんで
int point = 300;
int[] num = new int[10];
for(int i = 0; i < 10; i++){
if(i == 9)
&#160; num[i] = point;
else if(point == 0){
&#160; num[i] = 0;
}
else{
int tmpPoint = Random.Range(0,61);
if(tmpPoint < point) {
&#160; num[i] = tmpoint;
&#160; point -= tmpPoint;
}
else{
&#160; num[i] = tmpoint;
&#160; point = 0;
}
}}
320
(2): 2021/05/27(木)15:37 ID:4V3hIemC(2/2) AAS
外部リンク:ideone.com
こうだな
321: 2021/05/27(木)15:39 ID:SW5j+p99(3/6) AAS
タイポしまくってるのはすまん直してくれ
スマホからなんだ
322
(2): 2021/05/27(木)16:08 ID:SW5j+p99(4/6) AAS
さすがにアレなんで>>319はこっちに書き直しました
外部リンク:ideone.com
323: 2021/05/27(木)16:18 ID:a0FlewyP(7/10) AAS
>>320
本日の一等賞やな

スマートで面白いんだけど何でソートして引いただけで
こうなるのかが分からない

何かヒントないです?
324
(1): 2021/05/27(木)17:00 ID:un4LUW1y(4/5) AAS
>315>318>322は採用させていただきます。

>320
すみません。
コードを丸コピーしてもエラー吐いてうまく動作しませんでした。

採用させていただいた分でこうなってます。
外部リンク:ideone.com

皆様、ありがとうございました。
325
(1): 2021/05/27(木)17:23 ID:a0FlewyP(8/10) AAS
public static void Main() → void Start()
var nums = new Test().Divide(m, n); → TestがClass名だからそこ直す
Console.WriteLine(string.Join(',' , nums)); → print(string.Join(','.ToString(), nums));

エラーは間違いのお知らせだから、
そこは自分で読んで直せるように頑張ろうず

Next()がLagged Fibonacci法の引き算法を使った疑似乱数までは分かったけど
あっコレどうしてなのか考えたらダメな奴だ 頭から煙が出るぜうぇっw
1-
あと 677 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.023s