Пянтичное: опять фибоначчи

Slavandik
Уже с Приветом
Posts: 2769
Joined: 06 Apr 2012 22:58

Re: Пянтичное: опять фибоначчи

Post by Slavandik »

crypto5 wrote: 16 в двоичной системе исчисления будет 10000, а в 16-чной будет 1.
Really? 8)
Искренне ваш, быдлокодер
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

Slavandik wrote:
crypto5 wrote: 16 в двоичной системе исчисления будет 10000, а в 16-чной будет 1.
Really? 8)
А что именно не так?
In vino Veritas!
User avatar
venco
Уже с Приветом
Posts: 2001
Joined: 10 Nov 2004 00:34
Location: MD

Re: Пянтичное: опять фибоначчи

Post by venco »

crypto5 wrote:16 в двоичной системе исчисления будет 10000, а в 16-чной будет 1.
Ага, щаз. В 16-ричной будет 10, причём нолик - четырёхбитный.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

venco wrote:
crypto5 wrote:16 в двоичной системе исчисления будет 10000, а в 16-чной будет 1.
Ага, щаз. В 16-ричной будет 10, причём нолик - четырёхбитовый.
Да, ошибся, но дело это не меняет?
In vino Veritas!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Пянтичное: опять фибоначчи

Post by Интеррапт »

crypto5 wrote:
Slavandik wrote:
crypto5 wrote: 16 в двоичной системе исчисления будет 10000, а в 16-чной будет 1.
Really? 8)
А что именно не так?
Да похоже ты опечатался (1 вместо 10).
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

venco wrote:
crypto5 wrote:16 в двоичной системе исчисления будет 10000, а в 16-чной будет 1.
Ага, щаз. В 16-ричной будет 10, причём нолик - четырёхбитный.
Нолик будет столькибитным как вы закомпрессируете. Например в случае 2^27 что бы закодировать 2^27 вам не обязательно использовать многобитный ноль, можно закодировать попроще.
Last edited by crypto5 on 17 May 2013 18:33, edited 1 time in total.
In vino Veritas!
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

Интеррапт wrote:
crypto5 wrote:
Slavandik wrote:
crypto5 wrote: 16 в двоичной системе исчисления будет 10000, а в 16-чной будет 1.
Really? 8)
А что именно не так?
Да похоже ты опечатался (1 вместо 10).
Да, согласен, лоханулся
In vino Veritas!
User avatar
venco
Уже с Приветом
Posts: 2001
Joined: 10 Nov 2004 00:34
Location: MD

Re: Пянтичное: опять фибоначчи

Post by venco »

crypto5 wrote:Нолик будет столькибитным как вы закомпрессируете. Например в случае 2^27 что бы закодировать 2^27 вам не обязательно использовать многобитный ноль, можно закодировать попроще.
Ну так и двоичные нолики можно закомпрессировать. Давайте уж сравнивать яблоки с яблоками.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

venco wrote:
crypto5 wrote:Нолик будет столькибитным как вы закомпрессируете. Например в случае 2^27 что бы закодировать 2^27 вам не обязательно использовать многобитный ноль, можно закодировать попроще.
Ну так и двоичные нолики можно закомпрессировать. Давайте уж сравнивать яблоки с яблоками.
Можно, таким образом вы перейдете из позизионной системы исчисления по основанию 2 к позиционной системе исчисления по основанию во сколько вы там закомпрессируете, например 2^27.
In vino Veritas!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Пянтичное: опять фибоначчи

Post by АццкоМото »

crypto5 wrote:
АццкоМото wrote:
crypto5 wrote:Почему вы не можете сделать тоже самое для основания 2^27 или любого другого удобного числа?
Кэп подсказывает, что для любого основания, равного степени двойки для записи все равно потребуется ровно столько же битиков, как и для записи в двоичной системе
Или я не понял идею
16 в двоичной системе исчисления будет 10000, а в 16-чной будет 1.
Не 1, а 10. и шышнацытиричное 10 - это кагбэ 8 бит
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Пянтичное: опять фибоначчи

Post by АццкоМото »

crypto5 wrote:Можно, таким образом вы перейдете из позизионной системы исчисления по основанию 2 к позиционной системе исчисления по основанию во сколько вы там закомпрессируете, например 2^27.
Ну очевидно же, что для записи одной цифирки в такой системе нам потребуется аккурат 27 битиков. В чем пойнт-то?
Если бы мы знали, что вот именно в такой системе одни цифирки будут встречаться значительно чаще других... но вроде у нас нет таких знаний
Мат на форуме запрещен, блдж!
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

АццкоМото wrote:
crypto5 wrote:Можно, таким образом вы перейдете из позизионной системы исчисления по основанию 2 к позиционной системе исчисления по основанию во сколько вы там закомпрессируете, например 2^27.
Ну очевидно же, что для записи одной цифирки в такой системе нам потребуется аккурат 27 битиков. В чем пойнт-то?
Если бы мы знали, что вот именно в такой системе одни цифирки будут встречаться значительно чаще других... но вроде у нас нет таких знаний
В общем случае у нас да, нет таких знаний, в данном вроде как есть.
In vino Veritas!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Пянтичное: опять фибоначчи

Post by АццкоМото »

crypto5 wrote:
АццкоМото wrote:
crypto5 wrote:Можно, таким образом вы перейдете из позизионной системы исчисления по основанию 2 к позиционной системе исчисления по основанию во сколько вы там закомпрессируете, например 2^27.
Ну очевидно же, что для записи одной цифирки в такой системе нам потребуется аккурат 27 битиков. В чем пойнт-то?
Если бы мы знали, что вот именно в такой системе одни цифирки будут встречаться значительно чаще других... но вроде у нас нет таких знаний
В общем случае у нас да, нет таких знаний, в данном вроде как есть.
Да? И какие же это цифры?
Не, я, конечно, не знаю, может, и так и всем это очевидно, но мне - нет.
Я только вижу, что последняя цифра в системе с основанием 2^27 будет ноль. Про остальные не вижу ничего
UPD. Перезарядил. Все верно - ноликов там будет под сраку :)
Мат на форуме запрещен, блдж!
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

АццкоМото wrote:
crypto5 wrote:
АццкоМото wrote:
crypto5 wrote:Можно, таким образом вы перейдете из позизионной системы исчисления по основанию 2 к позиционной системе исчисления по основанию во сколько вы там закомпрессируете, например 2^27.
Ну очевидно же, что для записи одной цифирки в такой системе нам потребуется аккурат 27 битиков. В чем пойнт-то?
Если бы мы знали, что вот именно в такой системе одни цифирки будут встречаться значительно чаще других... но вроде у нас нет таких знаний
В общем случае у нас да, нет таких знаний, в данном вроде как есть.
Да? И какие же это цифры?
Не, я, конечно, не знаю, может, и так и всем это очевидно, но мне - нет.
Я только вижу, что последняя цифра в системе с основанием 2^27 будет ноль. Про остальные не вижу ничего
Ну вся эта дискуссия выросла из задачи про 2^(3^(4^(5^6))).
Вообще говоря если бы у меня в реальности появилась бы такая задача, я бы вообще скорее всего забил на позиционные системы, а пытался бы работать с исходным представлением: а^(b^(...)) и т.д.
In vino Veritas!
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Пянтичное: опять фибоначчи

Post by vopros »

crypto5 wrote: Ну вся эта дискуссия выросла из задачи про 2^(3^(4^(5^6))).
Вообще говоря если бы у меня в реальности появилась бы такая задача
а что бы вы сделали, если бы она появилась на интервью ?
написали бы код? если б да то какой?
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

vopros wrote:
crypto5 wrote: Ну вся эта дискуссия выросла из задачи про 2^(3^(4^(5^6))).
Вообще говоря если бы у меня в реальности появилась бы такая задача
а что бы вы сделали, если бы она появилась на интервью ?
написали бы код? если б да то какой?
Я бы спросил в каком формате им это нужно, и для каких целей, что они потом с этим числом делать собираются, от этого наверное и зависело какой код писать.
In vino Veritas!
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Пянтичное: опять фибоначчи

Post by vopros »

crypto5 wrote:
vopros wrote:
crypto5 wrote: Ну вся эта дискуссия выросла из задачи про 2^(3^(4^(5^6))).
Вообще говоря если бы у меня в реальности появилась бы такая задача
а что бы вы сделали, если бы она появилась на интервью ?
написали бы код? если б да то какой?
Я бы спросил в каком формате им это нужно, и для каких целей, что они потом с этим числом делать собираются, от этого наверное и зависело какой код писать.
спросить было нельзя, можно было только код написать.
мой вариант был таков. Он их устроил, но меня нет. А лучше не получается

Code: Select all

import java.math.BigInteger;

public class Test {

	/**
	 * Q.2 calc of 2^(3^(4^(5^6)))
	 */
	public static void main(String[] args) {
		calc();
	}

	static void calc() {
		int start = 6;
		BigInteger next = null;
		BigInteger power = new BigInteger(String.valueOf(start));
		for (; start > 2; start--) {
			next = new BigInteger(String.valueOf(start - 1));
			power = bigPower(next, power);
		}
	}

	static BigInteger bigPower(BigInteger num, BigInteger power) {
		BigInteger r = num;
		BigInteger counter = new BigInteger("1");
		while (!counter.equals(power)) {
			r = r.multiply(num);
			counter = counter.add(new BigInteger("1"));
		}
		return r;
	}
}
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

Думаю в идеале вы сказали бы что мол число не поместится в памяти и программа бессмысленна. Ну и теоретически в степень можно возводить за логарифмическое время а не линейное как у вас.
In vino Veritas!
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Пянтичное: опять фибоначчи

Post by vopros »

crypto5 wrote:Думаю в идеале вы сказали бы что мол число не поместится в памяти и программа бессмысленна. Ну и теоретически в степень можно возводить за логарифмическое время а не линейное как у вас.
это было первое, что я ответил, пораскинув мозгами.
возможно само решение, после этого было не так важно.
Но как возвести за логарифмическое время ? приведите пример пожалуйста
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

vopros wrote:
crypto5 wrote:Думаю в идеале вы сказали бы что мол число не поместится в памяти и программа бессмысленна. Ну и теоретически в степень можно возводить за логарифмическое время а не линейное как у вас.
это было первое, что я ответил, пораскинув мозгами.
возможно само решение, после этого было не так важно.
Но как возвести за логарифмическое время ? приведите пример пожалуйста
http://stackoverflow.com/questions/1014 ... powint-int
In vino Veritas!
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Пянтичное: опять фибоначчи

Post by vopros »

crypto5 wrote:
vopros wrote:
crypto5 wrote:Думаю в идеале вы сказали бы что мол число не поместится в памяти и программа бессмысленна. Ну и теоретически в степень можно возводить за логарифмическое время а не линейное как у вас.
это было первое, что я ответил, пораскинув мозгами.
возможно само решение, после этого было не так важно.
Но как возвести за логарифмическое время ? приведите пример пожалуйста
http://stackoverflow.com/questions/1014 ... powint-int
это не то, так как ни степень, ни результат в int не влезают.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

vopros wrote:
crypto5 wrote:
vopros wrote:
crypto5 wrote:Думаю в идеале вы сказали бы что мол число не поместится в памяти и программа бессмысленна. Ну и теоретически в степень можно возводить за логарифмическое время а не линейное как у вас.
это было первое, что я ответил, пораскинув мозгами.
возможно само решение, после этого было не так важно.
Но как возвести за логарифмическое время ? приведите пример пожалуйста
http://stackoverflow.com/questions/1014 ... powint-int
это не то, так как ни степень, ни результат в int не влезают.
Но принцип можно ведь перенести на бигинтеджер?
In vino Veritas!
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Пянтичное: опять фибоначчи

Post by vopros »

crypto5 wrote:
vopros wrote:
crypto5 wrote:
vopros wrote:
crypto5 wrote:Думаю в идеале вы сказали бы что мол число не поместится в памяти и программа бессмысленна. Ну и теоретически в степень можно возводить за логарифмическое время а не линейное как у вас.
это было первое, что я ответил, пораскинув мозгами.
возможно само решение, после этого было не так важно.
Но как возвести за логарифмическое время ? приведите пример пожалуйста
http://stackoverflow.com/questions/1014 ... powint-int
это не то, так как ни степень, ни результат в int не влезают.
Но принцип можно ведь перенести на бигинтеджер?
чтобы log(n) нельзя. попробуйте
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Пянтичное: опять фибоначчи

Post by crypto5 »

Code: Select all

import java.math.BigInteger;


public class BigintPower {
	public static void main(String[] args) {
		System.out.println(pow(BigInteger.valueOf(2), BigInteger.TEN));
	}

	static BigInteger pow(BigInteger n, BigInteger p) {
		BigInteger res = BigInteger.ONE;
		while(!p.equals(BigInteger.ZERO)) {
			if(p.testBit(0)) res = res.multiply(n);
			p = p.divide(BigInteger.valueOf(2));
			n = n.multiply(n);
		}
		return res;
	}
}
O(log(n)) относительно операций умножения бигинтеджеров понятно.
In vino Veritas!
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Пянтичное: опять фибоначчи

Post by vopros »

crypto5 wrote:

Code: Select all

import java.math.BigInteger;


public class BigintPower {
	public static void main(String[] args) {
		System.out.println(pow(BigInteger.valueOf(2), BigInteger.TEN));
	}

	static BigInteger pow(BigInteger n, BigInteger p) {
		BigInteger res = BigInteger.ONE;
		while(!p.equals(BigInteger.ZERO)) {
			if(p.testBit(0)) res = res.multiply(n);
			p = p.divide(BigInteger.valueOf(2));
			n = n.multiply(n);
		}
		return res;
	}
}
O(log(n)) относительно операций умножения бигинтеджеров понятно.
:upset: завтра обмозгую

Return to “Работа и Карьера в IT”