php генератор случайных чисел представляет мой лабораторный результат - PullRequest
0 голосов
/ 19 сентября 2019

Как использовать таблицу генератора случайных чисел php для представления моих лабораторных результатов.Проходить и не показывать случайную позицию на столе.просто хочу ввести Pass = 13 и Fail = 3 два числа.

Test1   P   Test5   P   Test9   F   Test13  P
Test2   P   Test6   P   Test10  F   Test14  P
Test3   P   Test7   P   Test11  P   Test15  P
Test4   F   Test8   P   Test12  P   Test16  P

image

спасибо!

1 Ответ

0 голосов
/ 19 сентября 2019

Возможно что-то вроде этого?

<?php

function random_swap_array($array, $scale=10) {
        $max = sizeof($array) - 1;
        for ($i=0; $i<$scale; $i++) {
                $pos1 = random_int(0, $max);
                $pos2 = random_int(0, $max);

                // swap the value of 2 pos
                $tmp = $array[$pos2];
                $array[$pos2] = $array[$pos1];
                $array[$pos1] = $tmp;
        }
        return $array;
}

function gen_n(int $n, $value) {
        for ($i=0; $i<$n; $i++) yield $value;
}

function gen_prefix_num(int $n, $prefix) {
        for ($i=1; $i<=$n; $i++) yield "{$prefix}{$i}";
}

// This generates an assoc array with key "Test1" to "Test18"
// and values of randomly placed 14 "P" and 4 "F"
$arr = array_combine(
        iterator_to_array(gen_prefix_num(18, 'Test')),
        random_swap_array(array_merge(
                iterator_to_array(gen_n(4, 'F')),
                iterator_to_array(gen_n(14, 'P'))
        ), 100)
);
var_dump($arr); // display results

Результат:

array(18) {
  ["Test1"]=>
  string(1) "P"
  ["Test2"]=>
  string(1) "F"
  ["Test3"]=>
  string(1) "P"
  ["Test4"]=>
  string(1) "P"
  ["Test5"]=>
  string(1) "P"
  ["Test6"]=>
  string(1) "P"
  ["Test7"]=>
  string(1) "P"
  ["Test8"]=>
  string(1) "P"
  ["Test9"]=>
  string(1) "F"
  ["Test10"]=>
  string(1) "P"
  ["Test11"]=>
  string(1) "P"
  ["Test12"]=>
  string(1) "P"
  ["Test13"]=>
  string(1) "P"
  ["Test14"]=>
  string(1) "F"
  ["Test15"]=>
  string(1) "P"
  ["Test16"]=>
  string(1) "P"
  ["Test17"]=>
  string(1) "F"
  ["Test18"]=>
  string(1) "P"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...