Задано некоторое ограниченное множество
#include <stdio.h>
void insertodd(int arr[], int hi) {
int a = arr[hi];
for (int lo = hi - 1; lo >= 0; lo--) {
if (arr[lo] & 1) {
if (a < arr[lo]) {
arr[hi] = arr[lo];
hi = lo;
} else break;
}
arr[hi] = a;
}
}
void inserteven(int arr[], int hi) {
int a = arr[hi];
for (int lo = hi - 1; lo >= 0; lo--) {
if (arr[lo] && !(arr[lo] & 1)) {
if (a > arr[lo]) {
arr[hi] = arr[lo];
hi = lo;
} else break;
}
arr[hi] = a;
}
}
void customsort(int arr[], int len) {
for (int i = 1; i < len; i++) {
if (arr[i] & 1) insertodd(arr, i);
else if (arr[i]) inserteven(arr, i);
}
}
int main() {
int arr[6] = {1, 2, 5, 3, 0, 4};
customsort(arr, 6);
for (int i = 0; i < 6; i++)
printf("%d, ", arr[i]);
return 0;
}
from itertools import permutations, product
def acronyms(x):
res = {x}
for digs in permutations(str(x)):
if digs[0] != '0': # число, если не ноль, не начинается с нуля
res.add(int(''.join(digs)))
return res
a, b, c = 54, 12, 75
zz = acronyms(c)
for x, y in product(acronyms(a), acronyms(b)):
if x + y in zz:
print("%d + %d = %d" % (x, y, x + y))
a, b, n = 2, 3, 4 # 2сек/лист, 3сек/лист, 4 листа
ab = a + b
print(min(a * (n - n * a // ab), b * (n - n * b // ab)))
stack = "2 3 + 6 2 / 5 2 * - +".split()
def f():
op = stack.pop()
if op.isdigit():
return float(op)
else:
y = f()
x = f()
if op == "+":
return x + y
if op == "-":
return x - y
if op == "*":
return x * y
if op == "/":
return x / y
print(f())
stack = "2 3 + 6 2 / 5 2 * - +".split()
def g():
op = stack.pop()
if op.isdigit():
return op
else:
y = g()
x = g()
return ''.join(("(", x, op, y, ")")) # *
print(g())
numbers
. Быстро и не пожирая память. import re
d = {"a b c": "x", "a b": "y", "a": "z"}
data = "a b c a b a a a b c"
print(re.sub(r'a( b( c)?)?', lambda m: d[m.group()], data))
print(re.sub(r'a b c|a b|a', lambda m: d[m.group()], data)) # можно и так
нужный_процент = 0.33 // например
for (i = 0; i < n ; i++) {
x = random_от_нуля_до_единицы();
if (x > нужный_процент) x = 0;
else x /= нужный_процент; // ненулевые равномерно распределены на [0..1]
}
order = {c: i for i, c in enumerate(
"AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz")}
s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
print(''.join(sorted(s, key=lambda c: order.get(c, 99))))