ruby - Bagaimana untuk melaksanakan pemilihan gudang keutamaan alamat penerima dan gudang penghantaran dalam PHP
怪我咯
怪我咯 2017-06-27 09:18:02
0
1
896

Hari ini saya akan bertanya soalan teknikal tentang keutamaan pemilihan gudang produk, alamat penghantaran dan gudang penghantaran.

Seperti dalam tajuk:

  1. Pengguna membeli tiga produk: A, B dan C (boleh dianggap pengguna membeli n produk SKU, dan setiap SKU mempunyai kuantiti yang sepadan Kami menggunakan huruf besar untuk SKU produk: A, B, C;

  2. Alamat penghantaran ialah X ;

  3. Setiap produk mempunyai berbilang gudang, dan penghantaran gudang yang paling terkini dan optimum dipilih (keutamaan dikonfigurasikan mengikut alamat penghantaran), contohnya, gudang ialah: a, b, c, d (gudang diwakili oleh huruf kecil surat), dsb.;

Logik keutamaan:

Barang yang dibeli oleh pengguna boleh dihantar dari gudang Lebih kecil bilangan pakej, lebih baik (utama), dan lebih dekat pakej, lebih baik (sekunder);

.

Alamat penghantaran ialah X, senarai keutamaan gudang yang sepadan dengan alamat X:

X => a,b,c,d

Contoh:

Contoh 1. Pengguna membeli 1 sku (kuantiti ialah 3) dan menghantarnya ke alamat X yang sepadan:


A: 3

A Inventori dan kuantiti yang sepadan dengan produk ini: Pesanan yang sepadan dengan alamat X ialah: a, b, c, d

Senarai gudang dan inventori yang sepadan:

 a: 1
 b: 3
 c: 4
 d: 5

Mengikut prinsip pakej minimum ke gudang terdekat, hasilnya akan ditolak dari inventori gudang B (3 item produk A) untuk menghantar 1 pakej.


Contoh 2. Pengguna membeli 2 skus dan menghantarnya ke alamat X yang sepadan:

A: 3
B: 2

Inventori dan kuantiti yang sepadan dengan produk A dan B ini: (Tempahan yang sepadan dengan alamat X ialah: a, b, c, d)

Senarai gudang dan inventori yang sepadan:

 a: 1
 b: 3
 c: 4
 d: 5

B senarai gudang dan inventori yang sepadan:

 a: 1
 b: 2
 c: 1
 d: 5

Mengikut prinsip pakej minimum gudang terdekat, hasilnya juga perlu ditolak dari gudang b (3 produk A, 2 produk B) menyimpan dan menghantar 1 pakej.


Contoh 3. Pengguna membeli 2 skus dan menghantarnya ke alamat X yang sepadan:

A: 3
B: 2

Inventori dan kuantiti yang sepadan dengan produk A dan B ini: (Tempahan yang sepadan dengan alamat X ialah: a, b, c, d)

Senarai gudang dan inventori yang sepadan:

 a: 3
 b: 3
 c: 1
 d: 5

B senarai gudang dan inventori yang sepadan:

 a: 1
 b: 1
 c: 2
 d: 1

Mengikut prinsip gudang terdekat pakej minimum, hasilnya juga harus menolak gudang a (3 item produk A, 1 item produk B), tambah gudang b (1 item produk B), dan menghantar sejumlah 2 pakej ( gudang a dan gudang b) Setiap satu) (Di sini kami juga mematuhi prinsip mempunyai beberapa pakej terbaik dan gudang terdekat).


Contoh 4, pengguna membeli 2 skus dan menghantarnya ke alamat X yang sepadan:

A: 3
B: 5

Inventori dan kuantiti yang sepadan dengan produk A dan B ini: (Tempahan yang sepadan dengan alamat X ialah: a, b, c, d)

Senarai gudang dan inventori yang sepadan:

 a: 2
 b: 3
 c: 4
 d: 5

B senarai gudang dan inventori yang sepadan:

 a: 1
 b: 1
 c: 2
 d: 5

Mengikut prinsip pakej minimum gudang terdekat, hasilnya juga perlu ditolak dari gudang d (3 item produk A, 5 item produk B), dan sejumlah 1 paket (satu paket di gudang d) hendaklah dihantar . Prinsip bilangan minimum pakej dicapai di sini


Saya berani bertanya, bagaimana sesetengah pakar boleh memecahkan algoritma ini?

怪我咯
怪我咯

走同样的路,发现不同的人生

membalas semua(1)
学习ing

Ini yang saya fikirkan, mula-mula susun tatasusunan sku dalam tertib menurun, contohnya, 3 keping sku, tatasusunan(8,4,1);
Dapatkan pelan pakej optimum masing-masing 8 keping, 4 keping dan 3 keping ,
kemudian letak Dengan menggabungkan syarat gudang ketiga-tiga pelan ini dan mengalih keluar duplikasi, anda boleh mendapatkan pelan yang optimum.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!