renaming
BIN
5/схемотехника/2/f1.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
5/схемотехника/2/f1f2f3.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
5/схемотехника/2/f2.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
5/схемотехника/2/f3.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
5/схемотехника/2/func_schema.jpg
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
5/схемотехника/2/func_timing.jpg
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
5/схемотехника/2/handmade_timing.jpg
Normal file
|
After Width: | Height: | Size: 268 KiB |
BIN
5/схемотехника/2/implicant.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
5/схемотехника/2/lab2.pdf
Normal file
BIN
5/схемотехника/2/multiplex.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
5/схемотехника/2/multiplex_table.jpg
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
5/схемотехника/2/vhdl.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
5/схемотехника/2/whole_schema.jpg
Normal file
|
After Width: | Height: | Size: 125 KiB |
BIN
5/схемотехника/3/DVJK_table.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
5/схемотехника/3/README.jpg
Normal file
|
After Width: | Height: | Size: 176 KiB |
BIN
5/схемотехника/3/TDCE_schema.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
5/схемотехника/3/TDCE_timing.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
5/схемотехника/3/TJK.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
5/схемотехника/3/TJK_schema.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
5/схемотехника/3/TJK_timing.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
5/схемотехника/3/TT.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
5/схемотехника/3/TT_schema.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
5/схемотехника/3/TT_table.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
5/схемотехника/3/TT_timing.png
Normal file
|
After Width: | Height: | Size: 182 KiB |
BIN
5/схемотехника/3/TT_transition.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
5/схемотехника/3/lab3.pdf
Normal file
BIN
5/схемотехника/3/schema.png
Normal file
|
After Width: | Height: | Size: 186 KiB |
BIN
5/схемотехника/3/timings.jpg
Normal file
|
After Width: | Height: | Size: 223 KiB |
BIN
5/схемотехника/4/README.jpg
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
5/схемотехника/4/counter_schema.png
Normal file
|
After Width: | Height: | Size: 215 KiB |
BIN
5/схемотехника/4/counter_timing.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
5/схемотехника/4/counter_ugo.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
5/схемотехника/4/div_cb4_schema.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
5/схемотехника/4/div_cb4_timing.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
5/схемотехника/4/div_t_schema.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
5/схемотехника/4/div_t_timing.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
5/схемотехника/4/div_t_ugo.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
5/схемотехника/4/lab4.pdf
Normal file
BIN
5/схемотехника/4/schema.png
Normal file
|
After Width: | Height: | Size: 229 KiB |
BIN
5/схемотехника/5/README.jpg
Normal file
|
After Width: | Height: | Size: 169 KiB |
BIN
5/схемотехника/5/circuit.jpg
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
5/схемотехника/5/lab5.pdf
Normal file
BIN
5/схемотехника/5/timing.jpg
Normal file
|
After Width: | Height: | Size: 143 KiB |
BIN
5/схемотехника/5/ugo.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
5/схемотехника/6/README.jpg
Normal file
|
After Width: | Height: | Size: 229 KiB |
BIN
5/схемотехника/6/lab6.pdf
Normal file
168
5/схемотехника/basis.html
Normal file
@ -0,0 +1,168 @@
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Document</title>
|
||||
<style>
|
||||
th,
|
||||
td {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 1px solid black;
|
||||
min-width: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script>
|
||||
const app = document.getElementById('app')
|
||||
const func_names = ['константа 0', 'и', 'левая коимпликация', 'экв. x', 'правая коимпликация', 'экв. y', 'исключающее или', 'или', 'стрелка пирса', 'эквивалентность', 'не y', 'правая импликация', 'не x', 'левая импликация', 'штрих шеффера', 'константа 1']
|
||||
const func_syms = ['0', 'x∧y', 'x↛y', 'x', 'x↚y', 'y', 'x⊕y', 'x∨y', 'x↓y', 'x=y', '¬y', 'x←y', '¬x', 'x→y', 'x|y', '1']
|
||||
|
||||
function getTerm(num) {
|
||||
return [num >> 3, num >> 2 & 1, num >> 1 & 1, num & 1]
|
||||
}
|
||||
|
||||
function getName(num) {
|
||||
return func_syms[num] + ' (' + func_names[num] + ')'
|
||||
}
|
||||
|
||||
function isT0(num) {
|
||||
const term = getTerm(num)
|
||||
return term[0] == 0
|
||||
}
|
||||
|
||||
function isT1(num) {
|
||||
const term = getTerm(num)
|
||||
return term[3] == 1
|
||||
}
|
||||
|
||||
function isL(num) {
|
||||
const term = getTerm(num)
|
||||
return (term[0] ^ term[1] ^ term[2] ^ term[3]) == 0
|
||||
}
|
||||
|
||||
function isM(num) {
|
||||
const term = getTerm(num)
|
||||
return term[0] <= term[1] && term[0] <= term[2] && term[1] <= term[3] && term[2] <= term[3]
|
||||
}
|
||||
|
||||
function isS(num) {
|
||||
const term = getTerm(num)
|
||||
return term[0] == !term[3] && term[1] == !term[2]
|
||||
}
|
||||
|
||||
const row_func = [isT0, isT1, isL, isM, isS]
|
||||
const table = document.createElement('table')
|
||||
table.innerHTML = '<tr><th>Функция</th><th>T0</th><th>T1</th><th>L</th><th>M</th><th>S</th></tr>'
|
||||
|
||||
const bitclasses = []
|
||||
|
||||
for (let i = 0; i < 16; i++) {
|
||||
bitclasses.push(0)
|
||||
const tr = document.createElement('tr')
|
||||
const td = document.createElement('td')
|
||||
td.innerHTML = 'F' + i + ' : ' + getName(i)
|
||||
td.style.textAlign = 'left'
|
||||
tr.appendChild(td)
|
||||
|
||||
for (let j = 0; j < 5; j++) {
|
||||
bitclasses[i] |= row_func[j](i) << j
|
||||
const td = document.createElement('td')
|
||||
td.innerText = row_func[j](i) ? '+' : ''
|
||||
tr.appendChild(td)
|
||||
}
|
||||
|
||||
table.appendChild(tr)
|
||||
}
|
||||
|
||||
app.appendChild(table)
|
||||
|
||||
function forEachSubset(arr, callback) {
|
||||
for (let i = 0n; i < 2n ** BigInt(arr.length); i++) {
|
||||
const subset = []
|
||||
let bitset = i
|
||||
let pos = 0n
|
||||
|
||||
while (bitset > 0n) {
|
||||
if (bitset & 1n) {
|
||||
subset.push(arr[pos])
|
||||
}
|
||||
bitset >>= 1n
|
||||
pos++
|
||||
}
|
||||
|
||||
callback(subset)
|
||||
}
|
||||
}
|
||||
|
||||
const indexes = new Array(16).fill(0)
|
||||
indexes.forEach((v, i, a) => {a[i] = i})
|
||||
|
||||
const basis = []
|
||||
forEachSubset(indexes, (subset) => {
|
||||
for (let skipped_i = 0; skipped_i < subset.length; skipped_i++) {
|
||||
let bitclass = 2 ** 5 - 1
|
||||
|
||||
for (let i = 0; i < subset.length; i++) {
|
||||
if (i == skipped_i) {
|
||||
continue
|
||||
}
|
||||
|
||||
bitclass &= bitclasses[subset[i]]
|
||||
}
|
||||
if (bitclass == 0) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
let bitclass = 2 ** 5 - 1
|
||||
|
||||
for (const index of subset) {
|
||||
bitclass &= bitclasses[index]
|
||||
}
|
||||
if (bitclass != 0) {
|
||||
return
|
||||
}
|
||||
|
||||
basis.push(subset)
|
||||
})
|
||||
|
||||
basis.sort((a, b) => {return a.length - b.length})
|
||||
let len
|
||||
let ul
|
||||
basis.forEach((basis) => {
|
||||
if (basis.length != len || ul === undefined) {
|
||||
len = basis.length
|
||||
|
||||
const h = document.createElement('h3')
|
||||
h.innerText = 'Базисы размера ' + len
|
||||
app.appendChild(h)
|
||||
|
||||
ul = document.createElement('ul')
|
||||
app.appendChild(ul)
|
||||
}
|
||||
|
||||
const li = document.createElement('li')
|
||||
const inner_ul = document.createElement('ul')
|
||||
|
||||
for (const index of basis) {
|
||||
const inner_li = document.createElement('li')
|
||||
inner_li.innerText = getName(index)
|
||||
inner_ul.appendChild(inner_li)
|
||||
}
|
||||
li.appendChild(inner_ul)
|
||||
ul.appendChild(li)
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
5/схемотехника/dz/03.11.pdf
Normal file
BIN
5/схемотехника/dz/06.10.jpg
Normal file
|
After Width: | Height: | Size: 160 KiB |
BIN
5/схемотехника/dz/08.12.pdf
Normal file
BIN
5/схемотехника/dz/10.11.jpg
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
5/схемотехника/dz/15.12.pdf
Normal file
BIN
5/схемотехника/dz/20.10.pdf
Normal file
BIN
5/схемотехника/dz/24.11.pdf
Normal file
BIN
5/схемотехника/dz/27.10.jpg
Normal file
|
After Width: | Height: | Size: 159 KiB |